9#ifndef BOOST_CLBL_TRTS_ADD_MEMBER_LVALUE_REFERENCE_HPP
10#define BOOST_CLBL_TRTS_ADD_MEMBER_LVALUE_REFERENCE_HPP
14namespace boost {
namespace callable_traits {
24#ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
28 static_assert(std::is_same<T, detail::dummy>::value,
29 "Reference member qualifiers are not supported by this configuration.");
37#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
43 detail::abominable_functions_not_supported_on_this_compiler,
44 this_compiler_doesnt_support_abominable_function_types>,
48 member_qualifiers_are_illegal_for_this_type>>;
53 member_qualifiers_are_illegal_for_this_type>;
60 template<
typename T,
typename = std::false_type>
65 add_member_lvalue_reference_t<T>, detail::dummy>::type>
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_lvalue_reference, member_qualifiers_are_illegal_for_this_type > add_member_lvalue_reference_t
add_member_lvalue_reference_t< T > type