cgv
invalid_type.h
1 #pragma once
2 
3 namespace cgv {
4  namespace type {
5 
7 struct invalid_type {};
8 
9 template <typename T>
10 struct is_valid
11 {
12  static const int value = 1;
13 };
14 template <>
15 struct is_valid<invalid_type>
16 {
17  static const int value = 0;
18 };
19 
20 template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
21 struct count_valid_types
22 {
23  static const int value = is_valid<T1>::value + is_valid<T2>::value + is_valid<T3>::value + is_valid<T4>::value + is_valid<T5>::value + is_valid<T6>::value + is_valid<T7>::value + is_valid<T8>::value;
24 };
25 
26  }
27 }
cgv
the cgv namespace
Definition: vr_calib.cxx:9
cgv::type::invalid_type
use this type to mark the result of an invalid meta function
Definition: invalid_type.h:7