Blaze 3.9
IsCUDAAssignable.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TYPETRAITS_ISCUDAASSIGNABLE_H_
36#define _BLAZE_MATH_TYPETRAITS_ISCUDAASSIGNABLE_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
46#include <blaze/util/EnableIf.h>
47
48
49namespace blaze {
50
51//=================================================================================================
52//
53// CLASS DEFINITION
54//
55//=================================================================================================
56
57//*************************************************************************************************
59template< typename T > struct IsCUDAAssignable;
61//*************************************************************************************************
62
63
64//*************************************************************************************************
69template< typename T, typename = void >
70struct IsCUDAAssignableHelper
71 : public FalseType
72{};
73
74template< typename T >
75struct IsCUDAAssignableHelper< T, Void_t< decltype( T::cudaAssignable ) > >
76 : public BoolConstant< T::cudaAssignable >
77{};
78
79template< typename T >
80struct IsCUDAAssignableHelper< T, EnableIf_t< IsExpression_v<T> > >
81 : public IsCUDAAssignable< typename T::ResultType >::Type
82{};
84//*************************************************************************************************
85
86
87//*************************************************************************************************
120template< typename T >
122 : public IsCUDAAssignableHelper<T>
123{};
124//*************************************************************************************************
125
126
127//*************************************************************************************************
140template< typename T >
142//*************************************************************************************************
143
144} // namespace blaze
145
146#endif
Header file for the EnableIf class template.
Header file for the IntegralConstant class template.
Header file for the IsExpression type trait class.
constexpr bool IsExpression_v
Auxiliary variable template for the IsExpression type trait.
Definition: IsExpression.h:114
constexpr bool IsCUDAAssignable_v
Auxiliary variable template for the IsCUDAAssignable type trait.
Definition: IsCUDAAssignable.h:141
void Void_t
Compile time type check.
Definition: Void.h:64
BoolConstant< false > FalseType
Type/value traits base class.
Definition: IntegralConstant.h:121
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.
Definition: EnableIf.h:138
IntegralConstant< bool, B > BoolConstant
Generic wrapper for a compile time constant boolean value.
Definition: IntegralConstant.h:110
Compile time check for data types.
Definition: IsCUDAAssignable.h:123
Header file for the Void type trait.