boost::callable_traits Namespace Reference

Namespaces

 detail
 

Classes

struct  add_member_const
 
struct  add_member_cv
 
struct  add_member_lvalue_reference
 
struct  add_member_rvalue_reference
 
struct  add_member_volatile
 
struct  add_noexcept_t
 
struct  add_noexcept
 
struct  add_transaction_safe_t
 
struct  add_transaction_safe
 
struct  add_varargs
 
struct  apply_member_pointer
 
struct  apply_return
 
struct  args
 
struct  class_of
 
struct  function_type
 
struct  has_member_qualifiers
 
struct  has_varargs
 
struct  has_void_return
 
struct  is_const_member
 
struct  is_invocable
 
struct  is_invocable_r
 
struct  is_lvalue_reference_member
 
struct  is_noexcept
 
struct  is_reference_member
 
struct  is_rvalue_reference_member
 
struct  is_transaction_safe
 
struct  is_volatile_member
 
struct  qualified_class_of
 
struct  remove_member_const
 
struct  remove_member_cv
 
struct  remove_member_reference
 
struct  remove_member_volatile
 
struct  remove_noexcept
 
struct  remove_transaction_safe
 
struct  remove_varargs
 
struct  return_type
 

Typedefs

template<typename T >
using add_member_const_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_const, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using add_member_cv_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_cv, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using add_member_lvalue_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_lvalue_reference, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using add_member_rvalue_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_rvalue_reference, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using add_member_volatile_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_volatile, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using add_varargs_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_varargs, varargs_are_illegal_for_this_type >
 
template<typename T , typename C >
using apply_member_pointer_t = 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 > >
 
template<typename T , typename R >
using apply_return_t = detail::try_but_fail_if_invalid< typename detail::apply_return_helper< T, R >::type, invalid_types_for_apply_return >
 
template<typename T , template< class... > class Container = std::tuple>
using args_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::template expand_args< Container >, cannot_expand_the_parameter_list_of_first_template_argument >
 
template<typename T >
using class_of_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::class_type, type_is_not_a_member_pointer >
 
template<typename T >
using function_type_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::function_type, cannot_determine_parameters_for_this_type >
 
template<typename T >
using qualified_class_of_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::invoke_type, type_is_not_a_member_pointer >
 
template<typename T >
using remove_member_const_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_const, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using remove_member_cv_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_cv, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using remove_member_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_reference, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using remove_member_volatile_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_volatile, member_qualifiers_are_illegal_for_this_type >
 
template<typename T >
using remove_noexcept_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_noexcept, cannot_remove_noexcept_from_this_type >
 
template<typename T >
using remove_transaction_safe_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_transaction_safe, cannot_remove_transaction_safe_from_this_type >
 
template<typename T >
using remove_varargs_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_varargs, varargs_are_illegal_for_this_type >
 
template<typename T >
using return_type_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::return_type, unable_to_determine_return_type >
 

Variables

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_member_qualifiers_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_varargs_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_void_return_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_const_member_v
 
template<typename T , typename... Args>
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_v
 
template<typename Ret , typename T , typename... Args>
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_r_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_lvalue_reference_member_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_noexcept_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_reference_member_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_rvalue_reference_member_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_transaction_safe_v
 
template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_volatile_member_v
 

Typedef Documentation

◆ add_member_const_t

template<typename T >
using boost::callable_traits::add_member_const_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_const, member_qualifiers_are_illegal_for_this_type>

Definition at line 25 of file add_member_const.hpp.

◆ add_member_cv_t

template<typename T >
using boost::callable_traits::add_member_cv_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_cv, member_qualifiers_are_illegal_for_this_type>

Definition at line 25 of file add_member_cv.hpp.

◆ add_member_lvalue_reference_t

template<typename T >
using boost::callable_traits::add_member_lvalue_reference_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_lvalue_reference, member_qualifiers_are_illegal_for_this_type>

Definition at line 35 of file add_member_lvalue_reference.hpp.

◆ add_member_rvalue_reference_t

template<typename T >
using boost::callable_traits::add_member_rvalue_reference_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_rvalue_reference, member_qualifiers_are_illegal_for_this_type>

Definition at line 35 of file add_member_rvalue_reference.hpp.

◆ add_member_volatile_t

template<typename T >
using boost::callable_traits::add_member_volatile_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_volatile, member_qualifiers_are_illegal_for_this_type>

Definition at line 25 of file add_member_volatile.hpp.

◆ add_varargs_t

template<typename T >
using boost::callable_traits::add_varargs_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_varargs, varargs_are_illegal_for_this_type>

Definition at line 25 of file add_varargs.hpp.

◆ apply_member_pointer_t

template<typename T , typename C >
using boost::callable_traits::apply_member_pointer_t = typedef 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> >

Definition at line 53 of file apply_member_pointer.hpp.

◆ apply_return_t

template<typename T , typename R >
using boost::callable_traits::apply_return_t = typedef detail::try_but_fail_if_invalid< typename detail::apply_return_helper<T, R>::type, invalid_types_for_apply_return>

Definition at line 42 of file apply_return.hpp.

◆ args_t

template<typename T , template< class... > class Container = std::tuple>
using boost::callable_traits::args_t = typedef detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay<T> >::template expand_args<Container>, cannot_expand_the_parameter_list_of_first_template_argument>

Definition at line 24 of file args.hpp.

◆ class_of_t

template<typename T >
using boost::callable_traits::class_of_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<detail::shallow_decay<T> >::class_type, type_is_not_a_member_pointer>

Definition at line 25 of file class_of.hpp.

◆ function_type_t

template<typename T >
using boost::callable_traits::function_type_t = typedef detail::try_but_fail_if_invalid<typename detail::traits< detail::shallow_decay<T> >::function_type, cannot_determine_parameters_for_this_type>

Definition at line 24 of file function_type.hpp.

◆ qualified_class_of_t

template<typename T >
using boost::callable_traits::qualified_class_of_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<detail::shallow_decay<T> >::invoke_type, type_is_not_a_member_pointer>

Definition at line 26 of file qualified_class_of.hpp.

◆ remove_member_const_t

template<typename T >
using boost::callable_traits::remove_member_const_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_const, member_qualifiers_are_illegal_for_this_type>

Definition at line 25 of file remove_member_const.hpp.

◆ remove_member_cv_t

template<typename T >
using boost::callable_traits::remove_member_cv_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_cv, member_qualifiers_are_illegal_for_this_type>

Definition at line 26 of file remove_member_cv.hpp.

◆ remove_member_reference_t

template<typename T >
using boost::callable_traits::remove_member_reference_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_reference, member_qualifiers_are_illegal_for_this_type>

Definition at line 25 of file remove_member_reference.hpp.

◆ remove_member_volatile_t

template<typename T >
using boost::callable_traits::remove_member_volatile_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_volatile, member_qualifiers_are_illegal_for_this_type>

Definition at line 25 of file remove_member_volatile.hpp.

◆ remove_noexcept_t

template<typename T >
using boost::callable_traits::remove_noexcept_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_noexcept, cannot_remove_noexcept_from_this_type>

Definition at line 29 of file remove_noexcept.hpp.

◆ remove_transaction_safe_t

template<typename T >
using boost::callable_traits::remove_transaction_safe_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_transaction_safe, cannot_remove_transaction_safe_from_this_type>

Definition at line 29 of file remove_transaction_safe.hpp.

◆ remove_varargs_t

template<typename T >
using boost::callable_traits::remove_varargs_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_varargs, varargs_are_illegal_for_this_type>

Definition at line 26 of file remove_varargs.hpp.

◆ return_type_t

template<typename T >
using boost::callable_traits::return_type_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<detail::shallow_decay<T> >::return_type, unable_to_determine_return_type>

Definition at line 29 of file return_type.hpp.

Variable Documentation

◆ has_member_qualifiers_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_member_qualifiers_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::has_member_qualifiers::value

Definition at line 52 of file has_member_qualifiers.hpp.

◆ has_varargs_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_varargs_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::has_varargs::value

Definition at line 52 of file has_varargs.hpp.

◆ has_void_return_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_void_return_v
constexpr
Initial value:
=
std::is_same<typename detail::traits<
detail::shallow_decay<T>>::return_type, void>::value
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

Definition at line 49 of file has_void_return.hpp.

◆ is_const_member_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_const_member_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::is_const_member::value

Definition at line 50 of file is_const_member.hpp.

◆ is_invocable_r_v

template<typename Ret , typename T , typename... Args>
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_invocable_r_v
constexpr
Initial value:
=
detail::is_invocable_r_impl<
typename detail::is_invocable_impl<T, Args...>::type,
Ret, T, Args...>::type::value

Definition at line 78 of file is_invocable.hpp.

◆ is_invocable_v

template<typename T , typename... Args>
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_invocable_v
constexpr
Initial value:
=
detail::is_invocable_impl<T, Args...>::type::value

Definition at line 68 of file is_invocable.hpp.

◆ is_lvalue_reference_member_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_lvalue_reference_member_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::is_lvalue_reference_member::value

Definition at line 51 of file is_lvalue_reference_member.hpp.

◆ is_noexcept_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_noexcept_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::is_noexcept::value

Definition at line 50 of file is_noexcept.hpp.

◆ is_reference_member_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_reference_member_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::is_reference_member::value

Definition at line 53 of file is_reference_member.hpp.

◆ is_rvalue_reference_member_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_rvalue_reference_member_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::is_rvalue_reference_member::value

Definition at line 53 of file is_rvalue_reference_member.hpp.

◆ is_transaction_safe_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_transaction_safe_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::is_transaction_safe::value

Definition at line 53 of file is_transaction_safe.hpp.

◆ is_volatile_member_v

template<typename T >
constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_volatile_member_v
constexpr
Initial value:
=
detail::traits<detail::shallow_decay<T>>::is_volatile_member::value

Definition at line 53 of file is_volatile_member.hpp.