78 template <
typename T>
struct access {
85 template <
class T1,
bool cond>
87 typedef mpl::vector<T1>
type;
100 typedef typename mpl::transform_view < typename access<T>::type_info::BaseList
108 , mpl::back_inserter<mpl::_2>
113 typedef typename mpl::copy<
Childs
114 , mpl::back_inserter< mpl::vector<T> >
122 template <
typename T>
124 , child_first_impl<T>
161 #define CONSTEXPR BOOST_CONSTEXPR
165 #ifndef LTK_DOUBLE_PRECISION
181 #define BIT(n) (1ULL << (n))
185 #define SETBIT(n,i) ((n) |= BIT(i))
189 #define CLRBIT(n,i) ((n) &= ~BIT(i))
193 #define TESTBIT(n,i) ((Bool_t)(((n) & BIT(i)) != 0))
204 #define uLibTypeMacro(thisClass,...) \
207 template <typename> friend class uLib::detail::TypeIntrospection::access; \
213 constexpr static const char *name = BOOST_PP_STRINGIZE(thisClass); \
214 typedef BOOST_PP_VARIADIC_ELEM(0,__VA_ARGS__) BaseClass; \
215 typedef thisClass ThisClass; \
216 typedef uLib::mpl::vector<__VA_ARGS__,thisClass> TypeList; \
217 typedef uLib::mpl::vector<__VA_ARGS__> BaseList; \
218 typedef uLib::detail::TypeIntrospection::child_first<ThisClass>::type CFList; \
222 typedef type_info::BaseClass BaseClass; \
223 virtual const char *type_name() const { return type_info::name; } \
225 struct ObjectProps; \
233 template <
typename T>
247 { std::cout <<
typeid(T).name() << std::endl; }
249 template <
typename SeqT>
252 template <
typename Class>
253 static void PrintType(Class *
p = NULL) { std::cout <<
typeid(Class).name() << std::endl; }
264 #endif // U_CORE_TYPES_H
access< T1 >::type_info::CFList type
Definition: Types.h:93
mpl::vector< T1 > type
Definition: Types.h:87
float Real_t
Definition: Types.h:166
static void PrintType(Class *p=NULL)
Definition: Types.h:253
static void PrintMplSeq(SeqT *p=NULL)
Definition: Types.h:250
mpl::copy< Childs, mpl::back_inserter< mpl::vector< T > > >::type type
Definition: Types.h:115
void operator()(T) const
Definition: Types.h:246
bool Bool_t
Definition: Types.h:175
T::type_info type_info
Definition: Types.h:79
mpl::fold< CFListSeq, mpl::vector<>, mpl::copy< mpl::_1, mpl::back_inserter< mpl::_2 > > >::type Childs
Definition: Types.h:110
void * Pointer_t
Definition: Types.h:174
mpl::transform_view< typename access< T >::type_info::BaseList, lambda_CFList< mpl::_ > >::type CFListSeq
Definition: Types.h:102
#define p()
Definition: ObjectProps.h:59
id_t Id_t
Definition: Types.h:171