Blaze
3.9
blaze
util
typetraits
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
43
#include <
blaze/util/typetraits/Void.h
>
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
Void.h
Header file for the Void type trait.
Generated by
1.9.3