Go to the documentation of this file.
2 #ifndef LVR2_IO_GFeatureBase_HPP
3 #define LVR2_IO_GFeatureBase_HPP
19 template<
template<
typename>
typename Feature,
typename Derived>
30 template<
template<
typename>
typename ...Features>
31 class FeatureBase :
public Features<FeatureBase<Features...> >...
34 template <
typename T,
typename Tuple>
40 template <
typename T,
typename U,
typename... Ts>
43 template <
typename T,
typename... Ts>
47 static constexpr std::size_t
N =
sizeof...(Features);
50 template<
template<
typename>
typename F>
56 template<
typename>
typename F,
57 template<
typename>
typename ...Fs
62 template<
typename>
typename F,
63 template<
typename>
typename ...Fs
70 template<
typename>
typename F
73 using type =
typename std::conditional<
80 template<
template<
typename>
typename F>
86 template<
typename>
typename F,
87 template<
typename>
typename ...Fs
92 template<
typename>
typename F,
93 template<
typename>
typename ...Fs
99 template<
template<
typename>
typename F>
109 template<
template<
typename>
typename F>
112 template<
template<
typename>
typename ...F>
115 template<
typename OTHER>
119 #if __cplusplus <= 201500L
121 #pragma message("using Tp::save... needs c++17 at least or a newer compiler")
135 template<
template<
typename>
typename F>
138 template<
template<
typename>
typename F>
139 F<FeatureBase>*
scast();
141 template<
template<
typename>
typename F>
142 F<FeatureBase>*
dcast();
149 template<
template<
typename>
typename Feature,
typename Derived =
FeatureBase<> >
151 using type =
typename Derived::template add_features<Feature>::type;
154 template<
template<
typename>
typename Feature>
160 #include "FeatureBase.tcc"
162 #endif // LVR2_IO_GFeatureBase_HPP
typename add_features< F >::type::template add_features< Fs... >::type type
typename FeatureConstruct< Feature >::type FeatureBuild
Helper class how to construct a IO feature with its dependencies.
const FileKernelPtr m_kernel
static constexpr std::size_t N
const ScanProjectSchemaPtr m_description
typename OTHER::template add_features< Features... >::type Merge
std::tuple< Features< FeatureBase< Features... > >... > features
std::shared_ptr< FileKernel > FileKernelPtr
FeatureBase(const FileKernelPtr inKernel, const ScanProjectSchemaPtr inDesc)
typename add_features< F >::type type
F< FeatureBase > * scast()
typename FeatureConstruct< F, FeatureBase< Features... > >::type type
static constexpr bool value
typename add_features_with_deps< F... >::type AddFeatures
typename add_features_with_deps< F >::type::template add_features_with_deps< Fs... >::type type
static constexpr bool HasFeature
USE ONLY THESE METHODS IN APPLICATION ///.
typename std::conditional< FeatureBase< Features... >::has_feature< F >::value, FeatureBase< Features... >, FeatureBase< Features..., F > >::type type
F< FeatureBase > * dcast()
typename Derived::template add_features< Feature >::type type
Manager Class for all FeatureBase components located in hdf5 directory.
std::shared_ptr< ScanProjectSchema > ScanProjectSchemaPtr
lvr2
Author(s): Thomas Wiemann
, Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Wed Mar 2 2022 00:37:23