[/
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).
]

[section:copy_cv_ref copy_cv_ref]

    template<class T, class U>
    struct copy_cv_ref
    {
        typedef __below type;
    };

    template<class T, class U>
    using copy_cv_ref_t = typename copy_cv_ref<T, U>::type;

__type [^T /cvref/], where /cvref/ are the cvref-qualifiers of `U`.

__header `#include <boost/type_traits/copy_cv_ref.hpp>` or
`#include <boost/type_traits.hpp>>`

[table Examples

[[Expression] [Result Type]]

[[`copy_cv_ref<int, const char>::type`][`const int`]]

[[`copy_cv_ref<int, volatile char>::type`][`volatile int`]]

[[`copy_cv_ref<int, const volatile char>::type`][`const volatile int`]]

[[`copy_cv_ref<int, char&>::type`][`int&`]]

[[`copy_cv_ref<int, const char&>::type`][`const int&`]]

[[`copy_cv_ref<int, volatile char&>::type`][`volatile int&`]]

[[`copy_cv_ref<int, const volatile char&>::type`][`const volatile int&`]]

[[`copy_cv_ref<int, char&&>::type`][`int&&`]]

[[`copy_cv_ref<int, const char&&>::type`][`const int&&`]]

[[`copy_cv_ref<int, volatile char&&>::type`][`volatile int&&`]]

[[`copy_cv_ref<int, const volatile char&&>::type`][`const volatile int&&`]]

[[`copy_cv_ref<int&&, char&>::type`][`int&`]]

[[`copy_cv_ref<int&, const char>::type`][`int&`]]

[[`copy_cv_ref<int&, volatile char&>::type`][`int&`]]

[[`copy_cv_ref<int&, const volatile char&&>::type`][`int&`]]

]

[all_compilers] The type alias `copy_cv_ref_t` is only available if the compiler
supports template aliases.

[endsect]
