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
11namespace boost{
12
13template <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
19template <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