Blaze  3.6
GetMemberType.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_TYPETRAITS_GETMEMBERTYPE_H_
36 #define _BLAZE_UTIL_TYPETRAITS_GETMEMBERTYPE_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 
45 
46 namespace blaze {
47 
48 //=================================================================================================
49 //
50 // MACRO DEFINITION
51 //
52 //=================================================================================================
53 
54 //*************************************************************************************************
90 #define BLAZE_CREATE_GET_TYPE_MEMBER_TYPE_TRAIT( TYPE_TRAIT_NAME, MEMBER_NAME, FALLBACK_TYPE ) \
91  \
92 template< typename Type1233, typename = void > \
93 struct TYPE_TRAIT_NAME \
94 { \
95  using Type = FALLBACK_TYPE; \
96 }; \
97  \
98 template< typename Type1233 > \
99 struct TYPE_TRAIT_NAME< Type1233, blaze::Void_t< typename Type1233::MEMBER_NAME > > \
100 { \
101  using Type = typename Type1233::MEMBER_NAME; \
102 }; \
103  \
104 template< typename Type1233 > \
105 using TYPE_TRAIT_NAME##_t = typename TYPE_TRAIT_NAME<Type1233>::Type
106 //*************************************************************************************************
107 
108 } // namespace blaze
109 
110 #endif
Header file for the Void type trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58