third-party
realsense-file
boost
boost
type_traits
add_rvalue_reference.hpp
Go to the documentation of this file.
1
// add_rvalue_reference.hpp ---------------------------------------------------------//
2
3
// Copyright 2010 Vicente J. Botet Escriba
4
5
// Distributed under the Boost Software License, Version 1.0.
6
// See http://www.boost.org/LICENSE_1_0.txt
7
8
#ifndef BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
9
#define BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
10
11
#include <
boost/config.hpp
>
12
13
//----------------------------------------------------------------------------//
14
15
#include <
boost/type_traits/is_void.hpp
>
16
#include <
boost/type_traits/is_reference.hpp
>
17
18
//----------------------------------------------------------------------------//
19
// //
20
// C++03 implementation of //
21
// 20.9.7.2 Reference modifications [meta.trans.ref] //
22
// Written by Vicente J. Botet Escriba //
23
// //
24
// If T names an object or function type then the member typedef type
25
// shall name T&&; otherwise, type shall name T. [ Note: This rule reflects
26
// the semantics of reference collapsing. For example, when a type T names
27
// a type T1&, the type add_rvalue_reference<T>::type is not an rvalue
28
// reference. -end note ]
29
//----------------------------------------------------------------------------//
30
31
namespace
boost
{
32
33
namespace
type_traits_detail {
34
35
template
<
typename
T,
bool
b>
36
struct
add_rvalue_reference_helper
37
{
typedef
T
type
; };
38
39
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
40
template
<
typename
T>
41
struct
add_rvalue_reference_helper
<
T
, true>
42
{
43
typedef
T
&&
type
;
44
};
45
#endif
46
47
template
<
typename
T>
48
struct
add_rvalue_reference_imp
49
{
50
typedef
typename
boost::type_traits_detail::add_rvalue_reference_helper
51
<
T
, (
is_void<T>::value
==
false
&&
is_reference<T>::value
==
false
) >::
type
type
;
52
};
53
54
}
55
56
template
<
class
T>
struct
add_rvalue_reference
57
{
58
typedef
typename
boost::type_traits_detail::add_rvalue_reference_imp<T>::type
type
;
59
};
60
61
#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
62
63
template
<
class
T>
using
add_rvalue_reference_t
=
typename
add_rvalue_reference<T>::type
;
64
65
#endif
66
67
}
// namespace boost
68
69
#endif // BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
70
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
Definition:
core/addressof.hpp:19
boost::type_traits_detail::add_rvalue_reference_imp
Definition:
add_rvalue_reference.hpp:48
boost::is_reference
Definition:
is_reference.hpp:20
config.hpp
boost::type_traits_detail::add_rvalue_reference_imp::type
boost::type_traits_detail::add_rvalue_reference_helper< T,(is_void< T >::value==false &&is_reference< T >::value==false) >::type type
Definition:
add_rvalue_reference.hpp:51
is_reference.hpp
t265_stereo.T
T
Definition:
t265_stereo.py:157
boost::add_rvalue_reference
Definition:
add_rvalue_reference.hpp:56
boost::add_rvalue_reference_t
typename add_rvalue_reference< T >::type add_rvalue_reference_t
Definition:
add_rvalue_reference.hpp:63
boost::type_traits_detail::add_rvalue_reference_helper< T, true >::type
T && type
Definition:
add_rvalue_reference.hpp:43
boost::type_traits_detail::add_rvalue_reference_helper::type
T type
Definition:
add_rvalue_reference.hpp:37
boost::type_traits_detail::add_rvalue_reference_helper
Definition:
add_rvalue_reference.hpp:36
boost::add_rvalue_reference::type
boost::type_traits_detail::add_rvalue_reference_imp< T >::type type
Definition:
add_rvalue_reference.hpp:58
is_void.hpp
boost::is_void
Definition:
is_void.hpp:17
librealsense2
Author(s): LibRealSense ROS Team
autogenerated on Thu Dec 22 2022 03:41:41