Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <type_traits>
- template<typename From, typename To>
- struct copy_const {
- using type = std::conditional_t<std::is_const<From>::value,
- std::add_const_t<To>, To>;
- };
- template<typename From, typename To>
- struct copy_volatile {
- using type = std::conditional_t<std::is_volatile<From>::value,
- std::add_volatile_t<To>, To>;
- };
- template<typename From, typename To>
- struct copy_cv {
- using type = typename copy_volatile<
- From, typename copy_const<From, To>::type>::type;
- };
- template<typename From, typename To>
- using copy_const_t = typename copy_const<From, To>::type;
- template<typename From, typename To>
- using copy_volatile_t = typename copy_volatile<From, To>::type;
- template<typename From, typename To>
- using copy_cv_t = typename copy_cv<From, To>::type;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement