Added copy_const_t, copy_volatile_t and copy_cv_t type traits.

This commit is contained in:
Patrick 2024-07-31 22:19:19 +02:00
parent 2942149cb5
commit 7658e8fbda

View File

@ -112,6 +112,15 @@ struct is_type_member<TElement, TCollection<Ts...>>
template<typename TElement, typename TCollection>
constexpr bool is_type_member_v = is_type_member<TElement, TCollection>::value;
template<typename TFrom, typename TTo>
using copy_const_t = std::conditional_t<std::is_const_v<TFrom>, std::add_const_t<TTo>, std::remove_const_t<TTo>>;
template<typename TFrom, typename TTo>
using copy_volatile_t = std::conditional_t<std::is_volatile_v<TFrom>, std::add_volatile_t<TTo>, std::remove_volatile_t<TTo>>;
template<typename TFrom, typename TTo>
using copy_cv_t = copy_const_t<TFrom, copy_volatile_t<TFrom, TTo>>;
//
// public functions
//