Blaze 3.9
IsProxy.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TYPETRAITS_ISPROXY_H_
36#define _BLAZE_MATH_TYPETRAITS_ISPROXY_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
43#include <utility>
46
47
48namespace blaze {
49
50//=================================================================================================
51//
52// CLASS DEFINITION
53//
54//=================================================================================================
55
56//*************************************************************************************************
61template< typename PT, typename RT >
62TrueType isProxy_backend( const volatile Proxy<PT,RT>* );
63
64FalseType isProxy_backend( ... );
66//*************************************************************************************************
67
68
69//*************************************************************************************************
93template< typename T >
94struct IsProxy
95 : public decltype( isProxy_backend( std::declval<T*>() ) )
96{};
97//*************************************************************************************************
98
99
100//*************************************************************************************************
105template< typename T >
106struct IsProxy<T&>
107 : public FalseType
108{};
110//*************************************************************************************************
111
112
113//*************************************************************************************************
126template< typename T >
128//*************************************************************************************************
129
130} // namespace blaze
131
132#endif
Header file for the IntegralConstant class template.
constexpr bool IsProxy_v
Auxiliary variable template for the IsProxy type trait.
Definition: IsProxy.h:127
BoolConstant< true > TrueType
Type traits base class.
Definition: IntegralConstant.h:132
BoolConstant< false > FalseType
Type/value traits base class.
Definition: IntegralConstant.h:121
Header file for all forward declarations for proxies.
Generic wrapper for a compile time constant integral value.
Definition: IntegralConstant.h:74
Compile time check for proxy types.
Definition: IsProxy.h:96