1 | // Copyright 2010 John Maddock |
2 | |
3 | // Distributed under the Boost Software License, Version 1.0. |
4 | // See http://www.boost.org/LICENSE_1_0.txt |
5 | |
6 | #ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP |
7 | #define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP |
8 | |
9 | #include <boost/type_traits/add_reference.hpp> |
10 | |
11 | namespace boost{ |
12 | |
13 | template <class T> struct add_lvalue_reference |
14 | { |
15 | typedef typename boost::add_reference<T>::type type; |
16 | }; |
17 | |
18 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES |
19 | template <class T> struct add_lvalue_reference<T&&> |
20 | { |
21 | typedef T& type; |
22 | }; |
23 | #endif |
24 | |
25 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) |
26 | |
27 | template <class T> using add_lvalue_reference_t = typename add_lvalue_reference<T>::type; |
28 | |
29 | #endif |
30 | |
31 | } |
32 | |
33 | #endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP |
34 | |