Blaze 3.9
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
46namespace 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 \
92template< typename Type1233, typename = void > \
93struct TYPE_TRAIT_NAME \
94{ \
95 using Type = FALLBACK_TYPE; \
96}; \
97 \
98template< typename Type1233 > \
99struct TYPE_TRAIT_NAME< Type1233, blaze::Void_t< typename Type1233::MEMBER_NAME > > \
100{ \
101 using Type = typename Type1233::MEMBER_NAME; \
102}; \
103 \
104template< typename Type1233 > \
105using 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.