9#ifndef BOOST_CLBL_TRTS_IS_INVOCABLE_HPP
10#define BOOST_CLBL_TRTS_IS_INVOCABLE_HPP
15namespace boost {
namespace callable_traits {
25template<
typename T,
typename... Args>
29template<
typename Ret,
typename T,
typename... Args>
33template<
typename T,
typename... Args>
38template<
typename Ret,
typename T,
typename... Args>
41 typename detail::is_invocable_impl<T, Args...>::type, Ret, T, Args...>::type
47#ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
49template<
typename T,
typename... Args>
51 static_assert(std::is_same<T, detail::dummy>::value,
52 "Variable templates not supported on this compiler.");
55template<
typename Ret,
typename T,
typename... Args>
57 static_assert(std::is_same<T, detail::dummy>::value,
58 "Variable templates not supported on this compiler.");
64template<
typename T,
typename... Args>
74template<
typename Ret,
typename T,
typename... Args>
82 Ret, T, Args...>::type::value;
#define BOOST_CLBL_TRAITS_INLINE_VAR
BOOST_CLBL_TRAITS_INLINE_VAR constexpr bool is_invocable_r_v
BOOST_CLBL_TRAITS_INLINE_VAR constexpr bool is_invocable_v
typename detail::is_invocable_r_impl< typename detail::is_invocable_impl< T, Args... >::type, Ret, T, Args... >::type type
typename detail::is_invocable_impl< T, Args... >::type type