1 /* 2 Copyright 2019 Glen Joseph Fernandes 3 ([email protected]) 4 5 Distributed under the Boost Software License, 6 Version 1.0. (See accompanying file LICENSE_1_0.txt 7 or copy at http://www.boost.org/LICENSE_1_0.txt) 8 */ 9 #ifndef BOOST_TT_COPY_CV_REF_HPP_INCLUDED 10 #define BOOST_TT_COPY_CV_REF_HPP_INCLUDED 11 12 #include <boost/type_traits/copy_cv.hpp> 13 #include <boost/type_traits/copy_reference.hpp> 14 #include <boost/type_traits/remove_reference.hpp> 15 16 namespace boost { 17 18 template<class T, class U> 19 struct copy_cv_ref { 20 typedef typename copy_reference<typename copy_cv<T, 21 typename remove_reference<U>::type >::type, U>::type type; 22 }; 23 24 #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 25 template<class T, class U> 26 using copy_cv_ref_t = typename copy_cv_ref<T, U>::type; 27 #endif 28 29 } /* boost */ 30 31 #endif 32