22 template <
class test_t,
class target_t>
struct copy_qualifiers;
24 template <
class test_t,
class target_t>
struct copy_qualifiers {
using type = target_t; };
25 template <
class test_t,
class target_t>
struct copy_qualifiers<const test_t, target_t> {
using type =
const target_t; };
26 template <
class test_t,
class target_t>
struct copy_qualifiers< volatile test_t, target_t> {
using type =
volatile target_t; };
27 template <
class test_t,
class target_t>
struct copy_qualifiers<const volatile test_t, target_t> {
using type =
const volatile target_t; };
30 template<
class test_t,
class target_t>
31 using copy_qualifiers_t =
typename copy_qualifiers<test_t, target_t>::type;
52 using switch_qualifiers_t =
typename switch_qualifiers<T>::type;
66 template <
class T>
struct switch_const<const T> {
using type = T; };
70 using switch_const_t =
typename switch_const<T>::type;
88 using switch_volatile_t =
typename switch_volatile<T>::type;