9#ifndef BOOST_CLBL_TRTS_ADD_MEMBER_CV_HPP
10#define BOOST_CLBL_TRTS_ADD_MEMBER_CV_HPP
14namespace boost {
namespace callable_traits {
27#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
33 detail::abominable_functions_not_supported_on_this_compiler,
34 this_compiler_doesnt_support_abominable_function_types>,
37 member_qualifiers_are_illegal_for_this_type>>;
42 member_qualifiers_are_illegal_for_this_type>;
48 template<
typename T,
typename = std::false_type>
53 add_member_cv_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_cv, member_qualifiers_are_illegal_for_this_type > add_member_cv_t
add_member_cv_t< T > type