CUV  0.9.201304091348
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
type_traits.hpp
1 #include <boost/static_assert.hpp>
2 namespace cuv
3 {
10  template<class T>
12  BOOST_STATIC_ASSERT(sizeof(T)==0);
13  };
14 
15  template<>
16  struct vector_type_traits<float4>{
17  typedef float base_type;
18  static const int dim = 4;
19  static const bool is_base_type = false;
20  };
21 
22  template<>
23  struct vector_type_traits<float3>{
24  typedef float base_type;
25  static const int dim = 3;
26  static const bool is_base_type = false;
27  };
28 
29  template<>
30  struct vector_type_traits<float2>{
31  typedef float base_type;
32  static const int dim = 2;
33  static const bool is_base_type = false;
34  };
35  template<>
36  struct vector_type_traits<float1>{
37  typedef float base_type;
38  static const int dim = 1;
39  static const bool is_base_type = false;
40  };
41 
42  template<>
43  struct vector_type_traits<float>{
44  typedef float base_type;
45  static const int dim = 1;
46  static const bool is_base_type = true;
48  template<int I> struct vector{ };
49  };
50  template<> struct vector_type_traits<float>::template vector<1>{ typedef float type; };
51  template<> struct vector_type_traits<float>::template vector<2>{ typedef float2 type; };
52  template<> struct vector_type_traits<float>::template vector<3>{ typedef float3 type; };
53  template<> struct vector_type_traits<float>::template vector<4>{ typedef float4 type; };
54 
55 
56 
61 }