meta_utils_core.hpp
Go to the documentation of this file.
1 //
3 // (C) Copyright Ion Gaztanaga 2015-2015.
4 // Distributed under the Boost Software License, Version 1.0.
5 // (See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 //
8 // See http://www.boost.org/libs/move for documentation.
9 //
11 
13 
14 #ifndef BOOST_MOVE_DETAIL_META_UTILS_CORE_HPP
15 #define BOOST_MOVE_DETAIL_META_UTILS_CORE_HPP
16 
17 #ifndef BOOST_CONFIG_HPP
18 # include <boost/config.hpp>
19 #endif
20 #
21 #if defined(BOOST_HAS_PRAGMA_ONCE)
22 # pragma once
23 #endif
24 
25 //Small meta-typetraits to support move
26 
27 namespace boost {
28 namespace move_detail {
29 
31 // if_c
33 template<bool C, typename T1, typename T2>
34 struct if_c
35 {
36  typedef T1 type;
37 };
38 
39 template<typename T1, typename T2>
40 struct if_c<false,T1,T2>
41 {
42  typedef T2 type;
43 };
44 
46 // if_
48 template<typename T1, typename T2, typename T3>
49 struct if_ : if_c<0 != T1::value, T2, T3>
50 {};
51 
52 //enable_if_
53 template <bool B, class T = void>
55 {
56  typedef T type;
57 };
58 
60 // enable_if_c
62 template <class T>
63 struct enable_if_c<false, T> {};
64 
66 // enable_if
68 template <class Cond, class T = void>
69 struct enable_if : enable_if_c<Cond::value, T> {};
70 
72 // disable_if
74 template <class Cond, class T = void>
75 struct disable_if : enable_if_c<!Cond::value, T> {};
76 
78 // integral_constant
80 template<class T, T v>
82 {
83  static const T value = v;
84  typedef T value_type;
86 };
87 
90 
92 // identity
94 template <class T>
95 struct identity
96 {
97  typedef T type;
98 };
99 
101 // is_same
103 template<class T, class U>
104 struct is_same
105 {
106  static const bool value = false;
107 };
108 
109 template<class T>
110 struct is_same<T, T>
111 {
112  static const bool value = true;
113 };
114 
115 } //namespace move_detail {
116 } //namespace boost {
117 
118 #endif //#ifndef BOOST_MOVE_DETAIL_META_UTILS_CORE_HPP
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
integral_constant< bool, false > false_type
GLfloat value
GLdouble v
integral_constant< bool, true > true_type


librealsense2
Author(s): Sergey Dorodnicov , Doron Hirshberg , Mark Horn , Reagan Lopez , Itay Carpis
autogenerated on Mon May 3 2021 02:47:21