IsTemporary.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_ISTEMPORARY_H_
36 #define _BLAZE_MATH_TYPETRAITS_ISTEMPORARY_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
46 #include <blaze/util/FalseType.h>
47 #include <blaze/util/SelectType.h>
48 #include <blaze/util/TrueType.h>
49 
50 
51 namespace blaze {
52 
53 //=================================================================================================
54 //
55 // CLASS DEFINITION
56 //
57 //=================================================================================================
58 
59 //*************************************************************************************************
64 template< typename T >
65 struct IsTemporaryHelper
66 {
67  //**********************************************************************************************
68  enum { value = !IsReference<T>::value && !IsNumeric<T>::value && !IsExpression<T>::value };
69  typedef typename SelectType<value,TrueType,FalseType>::Type Type;
70  //**********************************************************************************************
71 };
73 //*************************************************************************************************
74 
75 
76 //*************************************************************************************************
86 template< typename T >
87 struct IsTemporary : public IsTemporaryHelper<T>::Type
88 {
89  public:
90  //**********************************************************************************************
92  enum { value = IsTemporaryHelper<T>::value };
93  typedef typename IsTemporaryHelper<T>::Type Type;
95  //**********************************************************************************************
96 };
97 //*************************************************************************************************
98 
99 } // namespace blaze
100 
101 #endif
Compile time check whether the given type is a temporary vector or matrix type.This type trait class ...
Definition: IsTemporary.h:87
Header file for the FalseType type/value trait base class.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the SelectType class template.
Header file for the IsNumeric type trait.
Header file for the IsReference type trait.
Header file for the TrueType type/value trait base class.
Header file for the IsExpression type trait class.