1 #ifndef TIL_ISTRAITS_H_ 2 #define TIL_ISTRAITS_H_ 11 #define TIL_DECLARE_IS(typeM) TIL_DECLARE_IS_VALUE_TEMPLATE(typeM, 0, typename T) 12 #define TIL_DECLARE_IS_VALUE(typeM, valueM) TIL_DECLARE_IS_VALUE_TEMPLATE(typeM, valueM, typename T) 17 #define TIL_DECLARE_IS_TEMPLATE(typeM, tplM) \ 23 #define TIL_DECLARE_IS_VALUE_TEMPLATE(typeM, valM, tplM) \ 27 enum { value = valM }; \ 30 #define TIL_DECLARE_IS_SPEC(typeM, cnameM) TIL_DECLARE_IS_SPEC_T(typeM, , cnameM) 31 #define TIL_DECLARE_IS_SPEC_T(typeM, templateArgsM, cnameM) \ 32 template < templateArgsM > \ 33 struct is_##typeM < cnameM > \ 98 #undef TIL_DECLARE_IS_VALUE 99 #undef TIL_DECLARE_IS_TEMPLATE 100 #undef TIL_DECLARE_IS_VALUE_TEMPLATE 103 #undef TIL_DECLARE_IS_SPEC 108 #endif //_ISTRAITS_H_ TIL_DECLARE_IS_SPEC_T(3DPoint, typename T, boost::array< T TIL_COMMA 3 >)
Belongs to package Box Do not include directly, include til/Box.h instead.
TIL_DECLARE_IS(3DPoint)
True if type implements a 3D Point.
This file contains forward declarations of classes defined in the TIL library.
A class that mimic the behavior of std::vector but with a storage policy focused on sparse data...
TIL_DECLARE_IS_TEMPLATE(BoostArray_N, typename T TIL_COMMA std::size_t N)
True if type is boost::array of size N.
TIL_DECLARE_IS_VALUE(3DVector, is_3DPoint< T >::value)
True if type implements a 3D Vector.