/* Copyright 2019 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_TT_COPY_REFERENCE_HPP_INCLUDED #define BOOST_TT_COPY_REFERENCE_HPP_INCLUDED #include #include #include #include #include namespace boost { template struct copy_reference { typedef typename conditional::value, typename add_rvalue_reference::type, typename conditional::value, typename add_lvalue_reference::type, T>::type>::type type; }; #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) template using copy_reference_t = typename copy_reference::type; #endif } /* boost */ #endif