apply_member_pointer.hpp
Go to the documentation of this file.
18 BOOST_CLBL_TRTS_SFINAE_MSG(apply_member_pointer, second_template_argument_must_be_a_class_or_struct)
94 * When `T` is a function, function pointer (unqualified), or function reference, then the aliased type is a member function pointer of `C` with the same parameters and return type.
95 * When `T` is a member function pointer (unqualified) of any type, the aliased type is a member function pointer of `C` with the same parameters and return type.
96 * Otherwise, the aliased type is a member data pointer equivalent to `std::remove_reference_t<T> C::*`.
typename std::conditional< std::is_reference< T >::value, reference_error, invalid_type >::type error_type
Definition: utility.hpp:28
typename std::conditional< std::is_same< T, invalid_type >::value, Fallback, T >::type fallback_if_invalid
Definition: utility.hpp:70
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
typename make_member_pointer< T, C >::type make_member_pointer_t
Definition: apply_member_pointer.hpp:41
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
Definition: sfinae_errors.hpp:34
detail::sfinae_try< detail::fallback_if_invalid< typename detail::traits< T >::template apply_member_pointer< C >, typename detail::make_member_pointer< T, C >::type >, detail::fail_when_same< void, T, members_cannot_have_a_type_of_void >, detail::fail_if<!std::is_class< C >::value, second_template_argument_must_be_a_class_or_struct > > apply_member_pointer_t
Definition: apply_member_pointer.hpp:63
Definition: add_member_const.hpp:14
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
Definition: sfinae_errors.hpp:56
#define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
Definition: sfinae_errors.hpp:47
apply_member_pointer_t< T, C > type
Definition: apply_member_pointer.hpp:74
error_type< T > type
Definition: apply_member_pointer.hpp:37
typename std::remove_reference< T >::type C::* type
Definition: apply_member_pointer.hpp:27