22#ifndef CTKCMDLINEMODULEBACKENDFPTYPETRAITS_H
23#define CTKCMDLINEMODULEBACKENDFPTYPETRAITS_H
26namespace CmdLineModuleBackendFunctionPointer {
30template<
bool flag,
typename T,
typename U>
36template<
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>
89template<
bool C,
typename T =
void>
98template<
typename,
typename>
110template<
typename B,
typename D>
PointerTraits< T >::PointeeType PointeeType
Select< isPointer, typenameUnConst< PointeeType >::Result, typenameSelect< isReference, typenameUnConst< ReferenceType >::Result, typenameUnConst< T >::Result >::Result >::Result RawType
ReferenceTraits< T >::ReferenceType ReferenceType
static char(& Test(...))[2]
static char(& Test(B *))[1]