#include #include #include "test.hpp" #include FIT_TEST_CASE() { FIT_STATIC_TEST_CHECK(fit::apply_eval(binary_class(), fit::always(1), fit::always(2)) == 3); FIT_TEST_CHECK(fit::apply_eval(binary_class(), []{ return 1; }, []{ return 2;}) == 3); } FIT_TEST_CASE() { fit::apply_eval(fit::always(), fit::always(1), fit::always(2)); } struct indirect_sum_f { template auto operator()(T x, U y) const FIT_RETURNS(*x + *y); }; FIT_TEST_CASE() { FIT_TEST_CHECK( fit::apply_eval( indirect_sum_f(), []{ return std::unique_ptr(new int(1)); }, []{ return std::unique_ptr(new int(2)); }) == 3); }