#include #include #include "test.hpp" template struct callable_rank : callable_rank {}; template<> struct callable_rank<0> {}; FIT_STATIC_TEST_CASE() { struct is_callable_class { void operator()(int) const { } }; struct callable_test_param {}; void is_callable_function(int) { } struct is_callable_rank_class { void operator()(int, callable_rank<3>) const { } void operator()(int, callable_rank<4>) const { } }; static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(not fit::is_callable::value, "callable failed"); static_assert(not fit::is_callable::value, "callable failed"); static_assert(not fit::is_callable::value, "callable failed"); typedef void (*is_callable_function_pointer)(int); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(fit::is_callable::value, "Not callable"); static_assert(not fit::is_callable::value, "callable failed"); static_assert(not fit::is_callable::value, "callable failed"); static_assert(not fit::is_callable::value, "callable failed"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(fit::is_callable>::value, "Not callable"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable::value, "callable failed"); static_assert(not fit::is_callable, callable_test_param>::value, "callable failed"); static_assert(not fit::is_callable, callable_test_param>::value, "callable failed"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable>::value, "callable failed"); static_assert(not fit::is_callable::value, "callable failed"); static_assert(not fit::is_callable::value, "callable failed"); };