add_pointer.hpp
Go to the documentation of this file.
1 
2 // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
3 // Use, modification and distribution are subject to the Boost Software License,
4 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt).
6 //
7 // See http://www.boost.org/libs/type_traits for most recent version including documentation.
8 
9 #ifndef BOOST_TT_ADD_POINTER_HPP_INCLUDED
10 #define BOOST_TT_ADD_POINTER_HPP_INCLUDED
11 
13 
14 namespace boost {
15 
16 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x5A0)
17 //
18 // For some reason this implementation stops Borlands compiler
19 // from dropping cv-qualifiers, it still fails with references
20 // to arrays for some reason though (shrug...) (JM 20021104)
21 //
22 template <typename T>
23 struct add_pointer
24 {
25  typedef T* type;
26 };
27 template <typename T>
28 struct add_pointer<T&>
29 {
30  typedef T* type;
31 };
32 template <typename T>
33 struct add_pointer<T&const>
34 {
35  typedef T* type;
36 };
37 template <typename T>
38 struct add_pointer<T&volatile>
39 {
40  typedef T* type;
41 };
42 template <typename T>
43 struct add_pointer<T&const volatile>
44 {
45  typedef T* type;
46 };
47 
48 #else
49 
50 template <typename T>
52 {
54  typedef no_ref_type* type;
55 };
56 
57 #endif
58 
59 #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
60 
61  template <class T> using add_pointer_t = typename add_pointer<T>::type;
62 
63 #endif
64 
65 } // namespace boost
66 
67 #endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED
boost::detail::remove_rvalue_ref< T >::type type
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
no_ref_type * type
Definition: add_pointer.hpp:54
typename add_pointer< T >::type add_pointer_t
Definition: add_pointer.hpp:61
remove_reference< T >::type no_ref_type
Definition: add_pointer.hpp:53


librealsense2
Author(s): LibRealSense ROS Team
autogenerated on Thu Dec 22 2022 03:41:41