22 #ifndef CTKCMDLINEMODULEBACKENDFPTYPETRAITS_H
23 #define CTKCMDLINEMODULEBACKENDFPTYPETRAITS_H
26 namespace CmdLineModuleBackendFunctionPointer {
30 template<
bool flag,
typename T,
typename U>
36 template<
typename T,
typename U>
47 template<
class U>
struct PointerTraits
49 enum { result =
false };
52 template<
class U>
struct PointerTraits<U*>
54 enum { result =
true };
57 template<
class U>
struct ReferenceTraits
59 enum { result =
false };
62 template<
class U>
struct ReferenceTraits<U&>
64 enum { result =
true };
68 template<
class U>
struct UnConst
72 template<
class U>
struct UnConst<const U>
89 template<
bool C,
typename T =
void>
98 template<
typename,
typename>
110 template<
typename B,
typename D>
PointerTraits< T >::PointeeType PointeeType
Select< isPointer, typename UnConst< PointeeType >::Result, typename Select< isReference, typename UnConst< ReferenceType >::Result, typename UnConst< T >::Result >::Result >::Result RawType
ReferenceTraits< T >::ReferenceType ReferenceType
static char(& Test(...))[2]
static char(& Test(B *))[1]