Go to the documentation of this file.
11 #ifndef __SYS_TYPEDECORATE_H_INCLUDED__
12 #define __SYS_TYPEDECORATE_H_INCLUDED__
16 #include <type_traits>
24 #define SYS_DECLARE_IS_INTEGRAL(T) \
25 namespace SYS_TypeTraitsImpl{ template<> struct AddIntegralNoCV< T > : public std::true_type { \
26 static_assert( ! ( std::is_const< T >::value || std::is_volatile< T >::value ), \
27 "SYS_DECLARE_IS_INTEGRAL must be used on types without const/volatile qualifiers" ); \
32 #define SYS_DECLARE_IS_FLOATING_POINT(T) \
33 namespace SYS_TypeTraitsImpl{ template<> struct AddFloatingPointNoCV< T > : public std::true_type { \
34 static_assert( ! ( std::is_const< T >::value || std::is_volatile< T >::value ), \
35 "SYS_DECLARE_IS_FLOATING_POINT must be used on types without const/volatile qualifiers" ); \
40 #define SYS_DECLARE_IS_POD(T) \
41 namespace SYS_TypeTraitsImpl{ template<> struct AddPodNoCV< T > : public std::true_type { \
42 static_assert( ! ( std::is_const< T >::value || std::is_volatile< T >::value ), \
43 "SYS_DECLARE_IS_POD must be used on types without const/volatile qualifiers" ); \
47 #endif // __SYS_TYPEDECORATE_H_INCLUDED__