Added member_pointer_of traits.

This commit is contained in:
Patrick Wuttke 2025-08-30 00:31:05 +02:00
parent a95885880f
commit 0e988a4d9e

View File

@ -192,6 +192,18 @@ struct is_type_member<TElement, TCollection<Ts...>>
template<typename TElement, typename TCollection> template<typename TElement, typename TCollection>
constexpr bool is_type_member_v = is_type_member<TElement, TCollection>::value; constexpr bool is_type_member_v = is_type_member<TElement, TCollection>::value;
template<typename T, typename TObject>
struct is_member_object_pointer_of : std::false_type {};
template<typename TMember, typename TObject>
struct is_member_object_pointer_of<TMember (TObject::*), TObject> : std::true_type {};
template<typename T, typename TObject>
inline constexpr bool is_member_object_pointer_of_v = is_member_object_pointer_of<T, TObject>::value;
template<typename T, typename TObject>
concept member_object_pointer_of = is_member_object_pointer_of_v<T, TObject>;
template<typename TFrom, typename TTo> 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>>; using copy_const_t = std::conditional_t<std::is_const_v<TFrom>, std::add_const_t<TTo>, std::remove_const_t<TTo>>;