Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
third-party
realsense-file
boost
boost
detail
indirect_traits.hpp
Go to the documentation of this file.
1
// Copyright David Abrahams 2002.
2
// Distributed under the Boost Software License, Version 1.0. (See
3
// accompanying file LICENSE_1_0.txt or copy at
4
// http://www.boost.org/LICENSE_1_0.txt)
5
#ifndef INDIRECT_TRAITS_DWA2002131_HPP
6
# define INDIRECT_TRAITS_DWA2002131_HPP
7
# include <
boost/type_traits/is_function.hpp
>
8
# include <
boost/type_traits/is_reference.hpp
>
9
# include <
boost/type_traits/is_pointer.hpp
>
10
# include <
boost/type_traits/is_class.hpp
>
11
# include <
boost/type_traits/is_const.hpp
>
12
# include <
boost/type_traits/is_volatile.hpp
>
13
# include <
boost/type_traits/is_member_function_pointer.hpp
>
14
# include <
boost/type_traits/is_member_pointer.hpp
>
15
# include <
boost/type_traits/remove_cv.hpp
>
16
# include <
boost/type_traits/remove_reference.hpp
>
17
# include <
boost/type_traits/remove_pointer.hpp
>
18
19
# include <
boost/detail/workaround.hpp
>
20
21
# include <
boost/mpl/eval_if.hpp
>
22
# include <
boost/mpl/if.hpp
>
23
# include <
boost/mpl/bool.hpp
>
24
# include <
boost/mpl/and.hpp
>
25
# include <
boost/mpl/not.hpp
>
26
# include <
boost/mpl/aux_/lambda_support.hpp
>
27
28
29
namespace
boost
{
namespace
detail
{
30
31
namespace
indirect_traits {
32
33
template
<
class
T>
34
struct
is_reference_to_const
:
mpl::false_
35
{
36
};
37
38
template
<
class
T>
39
struct
is_reference_to_const
<
T
const&> :
mpl::true_
40
{
41
};
42
43
# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
44
template
<
class
T>
45
struct
is_reference_to_const
<T const volatile&> :
mpl::true_
46
{
47
};
48
# endif
49
50
template
<
class
T>
51
struct
is_reference_to_function
:
mpl::false_
52
{
53
};
54
55
template
<
class
T>
56
struct
is_reference_to_function
<T&> :
is_function<T>
57
{
58
};
59
60
template
<
class
T>
61
struct
is_pointer_to_function
:
mpl::false_
62
{
63
};
64
65
// There's no such thing as a pointer-to-cv-function, so we don't need
66
// specializations for those
67
template
<
class
T>
68
struct
is_pointer_to_function
<T*> :
is_function<T>
69
{
70
};
71
72
template
<
class
T>
73
struct
is_reference_to_member_function_pointer_impl
:
mpl::false_
74
{
75
};
76
77
template
<
class
T>
78
struct
is_reference_to_member_function_pointer_impl
<T&>
79
:
is_member_function_pointer<typename remove_cv<T>::type
>
80
{
81
};
82
83
84
template
<
class
T>
85
struct
is_reference_to_member_function_pointer
86
:
is_reference_to_member_function_pointer_impl
<T>
87
{
88
BOOST_MPL_AUX_LAMBDA_SUPPORT
(1,
is_reference_to_member_function_pointer
,(T))
89
};
90
91
template
<
class
T>
92
struct
is_reference_to_function_pointer_aux
93
:
mpl::and_
<
94
is_reference<T>
95
, is_pointer_to_function<
96
typename remove_cv<
97
typename remove_reference<T>::type
98
>::type
99
>
100
>
101
{
102
// There's no such thing as a pointer-to-cv-function, so we don't need specializations for those
103
};
104
105
template
<
class
T>
106
struct
is_reference_to_function_pointer
107
:
mpl::if_
<
108
is_reference_to_function<T>
109
, mpl::false_
110
, is_reference_to_function_pointer_aux<T>
111
>
::type
112
{
113
};
114
115
template
<
class
T>
116
struct
is_reference_to_non_const
117
:
mpl::and_
<
118
is_reference<T>
119
, mpl::not_<
120
is_reference_to_const<T>
121
>
122
>
123
{
124
};
125
126
template
<
class
T>
127
struct
is_reference_to_volatile
:
mpl::false_
128
{
129
};
130
131
template
<
class
T>
132
struct
is_reference_to_volatile
<T volatile&> :
mpl::true_
133
{
134
};
135
136
# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
137
template
<
class
T>
138
struct
is_reference_to_volatile
<T const volatile&> :
mpl::true_
139
{
140
};
141
# endif
142
143
144
template
<
class
T>
145
struct
is_reference_to_pointer
:
mpl::false_
146
{
147
};
148
149
template
<
class
T>
150
struct
is_reference_to_pointer
<T*&> :
mpl::true_
151
{
152
};
153
154
template
<
class
T>
155
struct
is_reference_to_pointer
<T*
const
&> :
mpl::true_
156
{
157
};
158
159
template
<
class
T>
160
struct
is_reference_to_pointer
<T*
volatile
&> :
mpl::true_
161
{
162
};
163
164
template
<
class
T>
165
struct
is_reference_to_pointer
<T*
const
volatile
&> :
mpl::true_
166
{
167
};
168
169
template
<
class
T>
170
struct
is_reference_to_class
171
:
mpl::and_
<
172
is_reference<T>
173
, is_class<
174
typename remove_cv<
175
typename remove_reference<T>::type
176
>::type
177
>
178
>
179
{
180
BOOST_MPL_AUX_LAMBDA_SUPPORT
(1,
is_reference_to_class
,(T))
181
};
182
183
template
<
class
T>
184
struct
is_pointer_to_class
185
:
mpl::and_
<
186
is_pointer<T>
187
, is_class<
188
typename remove_cv<
189
typename remove_pointer<T>::type
190
>::type
191
>
192
>
193
{
194
BOOST_MPL_AUX_LAMBDA_SUPPORT
(1,
is_pointer_to_class
,(T))
195
};
196
197
198
}
199
200
using namespace
indirect_traits;
201
202
}}
// namespace boost::python::detail
203
204
#endif // INDIRECT_TRAITS_DWA2002131_HPP
eval_if.hpp
true_
bool_< true > true_
Definition:
bool_fwd.hpp:21
boost::detail::indirect_traits::is_reference_to_non_const
Definition:
indirect_traits.hpp:116
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
Definition:
core/addressof.hpp:19
boost::detail::indirect_traits::is_reference_to_class
Definition:
indirect_traits.hpp:170
boost::detail::indirect_traits::is_reference_to_function_pointer
Definition:
indirect_traits.hpp:106
is_function.hpp
boost::detail::indirect_traits::is_reference_to_const
Definition:
indirect_traits.hpp:34
is_volatile.hpp
bool.hpp
boost::detail::indirect_traits::is_reference_to_function_pointer_aux
Definition:
indirect_traits.hpp:92
boost::detail::indirect_traits::is_reference_to_member_function_pointer_impl
Definition:
indirect_traits.hpp:73
workaround.hpp
boost::is_member_function_pointer
Definition:
is_member_function_pointer.hpp:39
is_class.hpp
is_member_function_pointer.hpp
is_reference.hpp
if.hpp
BOOST_MPL_AUX_LAMBDA_SUPPORT
#define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params)
Definition:
lambda_support.hpp:22
boost::mpl::and_
Definition:
mpl/aux_/preprocessed/gcc/and.hpp:48
t265_stereo.T
T
Definition:
t265_stereo.py:157
boost::detail::indirect_traits::is_pointer_to_function
Definition:
indirect_traits.hpp:61
boost::detail::indirect_traits::is_reference_to_function
Definition:
indirect_traits.hpp:51
boost::detail::indirect_traits::is_pointer_to_class
Definition:
indirect_traits.hpp:184
false_
bool_< false > false_
Definition:
bool_fwd.hpp:25
el::base::consts::detail
const char * detail
Definition:
easylogging++.h:774
is_const.hpp
remove_reference.hpp
boost::is_function
Definition:
is_function.hpp:95
is_member_pointer.hpp
boost::detail::indirect_traits::is_reference_to_volatile
Definition:
indirect_traits.hpp:127
lambda_support.hpp
boost::mpl::if_
Definition:
mpl/if.hpp:55
and.hpp
remove_cv.hpp
boost::detail::indirect_traits::is_reference_to_member_function_pointer
Definition:
indirect_traits.hpp:85
boost::type
Definition:
type.hpp:14
remove_pointer.hpp
not.hpp
is_pointer.hpp
boost::detail::indirect_traits::is_reference_to_pointer
Definition:
indirect_traits.hpp:145
librealsense2
Author(s): Sergey Dorodnicov
, Doron Hirshberg
, Mark Horn
, Reagan Lopez
, Itay Carpis
autogenerated on Mon May 3 2021 02:47:17