123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef BOOST_HOF_GUARD_IS_CALLABLE_H
- #define BOOST_HOF_GUARD_IS_CALLABLE_H
- #include <boost/hof/detail/can_be_called.hpp>
- #include <boost/hof/apply.hpp>
- namespace boost { namespace hof {
- template<class F, class... Ts>
- struct is_invocable
- : detail::can_be_called<detail::apply_f, F, Ts...>
- {};
- template<class F, class... Ts, class... Us>
- struct is_invocable<F(Ts...), Us...>
- {
- static_assert(!std::is_same<F, F>::value,
- "The is_invocable<F(Args...)> form is not supported because it is problematic."
- "Please use is_invocable<F, Args...> instead."
- );
- };
- }}
- #endif
|