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 
53 // enable_if_c
55 template <bool B, class T = void>
57 {
58  typedef T type;
59 };
60 
61 template <class T>
62 struct enable_if_c<false, T> {};
63 
65 // enable_if
67 template <class Cond, class T = void>
68 struct enable_if : enable_if_c<Cond::value, T> {};
69 
71 // disable_if_c
73 template <bool B, class T = void>
75  : enable_if_c<!B, T>
76 {};
77 
79 // disable_if
81 template <class Cond, class T = void>
82 struct disable_if : enable_if_c<!Cond::value, T> {};
83 
85 // integral_constant
87 template<class T, T v>
89 {
90  static const T value = v;
91  typedef T value_type;
93 
94  operator T() const { return value; }
95  T operator()() const { return value; }
96 };
97 
100 
101 
103 // is_same
105 template<class T, class U>
106 struct is_same
107 {
108  static const bool value = false;
109 };
110 
111 template<class T>
112 struct is_same<T, T>
113 {
114  static const bool value = true;
115 };
116 
118 // enable_if_same
120 template <class T, class U, class R = void>
121 struct enable_if_same : enable_if<is_same<T, U>, R> {};
122 
124 // disable_if_same
126 template <class T, class U, class R = void>
127 struct disable_if_same : disable_if<is_same<T, U>, R> {};
128 
129 } //namespace move_detail {
130 } //namespace boost {
131 
132 #endif //#ifndef BOOST_MOVE_DETAIL_META_UTILS_CORE_HPP
boost::move_detail::integral_constant::value_type
T value_type
Definition: meta_utils_core.hpp:91
boost::move_detail::if_
Definition: meta_utils_core.hpp:49
boost::move_detail::if_c
Definition: meta_utils_core.hpp:34
T
T
Definition: mem_fn_cc.hpp:25
config.hpp
boost::move_detail::integral_constant
Definition: meta_utils_core.hpp:88
boost::move_detail::if_c< false, T1, T2 >::type
T2 type
Definition: meta_utils_core.hpp:42
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
boost::move_detail::integral_constant::value
static const T value
Definition: meta_utils_core.hpp:90
boost::move_detail::if_c::type
T1 type
Definition: meta_utils_core.hpp:36
boost::move_detail::enable_if_same
Definition: meta_utils_core.hpp:121
boost::move_detail::true_type
integral_constant< bool, true > true_type
Definition: meta_utils_core.hpp:98
boost::move_detail::enable_if_c
Definition: meta_utils_core.hpp:56
boost::move_detail::disable_if
Definition: meta_utils_core.hpp:82
boost::move_detail::integral_constant::type
integral_constant< T, v > type
Definition: meta_utils_core.hpp:92
boost::move_detail::disable_if_same
Definition: meta_utils_core.hpp:127
boost::move_detail::disable_if_c
Definition: meta_utils_core.hpp:74
boost::move_detail::false_type
integral_constant< bool, false > false_type
Definition: meta_utils_core.hpp:99
boost::move_detail::is_same::value
static const bool value
Definition: meta_utils_core.hpp:108
boost::move_detail::enable_if
Definition: meta_utils_core.hpp:68
boost::move_detail::integral_constant::operator()
T operator()() const
Definition: meta_utils_core.hpp:95
boost::move_detail::is_same
Definition: meta_utils_core.hpp:106
boost::move_detail::enable_if_c::type
T type
Definition: meta_utils_core.hpp:58
boost::integral_constant< bool, false >


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:44:22