All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IsConvertible.h
Go to the documentation of this file.
1 //=================================================================================================
20 //=================================================================================================
21 
22 #ifndef _BLAZE_UTIL_TYPETRAITS_ISCONVERTIBLE_H_
23 #define _BLAZE_UTIL_TYPETRAITS_ISCONVERTIBLE_H_
24 
25 
26 //*************************************************************************************************
27 // Includes
28 //*************************************************************************************************
29 
30 #include <boost/type_traits/is_convertible.hpp>
31 #include <blaze/util/FalseType.h>
32 #include <blaze/util/SelectType.h>
33 #include <blaze/util/TrueType.h>
34 
35 
36 namespace blaze {
37 
38 //=================================================================================================
39 //
40 // CLASS DEFINITION
41 //
42 //=================================================================================================
43 
44 //*************************************************************************************************
49 template< typename From, typename To >
50 struct IsConvertibleHelper
51 {
52  //**********************************************************************************************
53  enum { value = boost::is_convertible<From,To>::value };
54  typedef typename SelectType<value,TrueType,FalseType>::Type Type;
55  //**********************************************************************************************
56 };
58 //*************************************************************************************************
59 
60 
61 //*************************************************************************************************
91 template< typename From, typename To >
92 struct IsConvertible : public IsConvertibleHelper<From,To>::Type
93 {
94  public:
95  //**********************************************************************************************
97  enum { value = IsConvertibleHelper<From,To>::value };
98  typedef typename IsConvertibleHelper<From,To>::Type Type;
100  //**********************************************************************************************
101 };
102 //*************************************************************************************************
103 
104 } // namespace blaze
105 
106 #endif