All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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.
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.