60 using namespace std::placeholders;
64 if constexpr (std::is_same_v<class_t, void>)
68 else if constexpr (std::is_same_v<std::integral_constant<std::size_t, arity>,
69 std::integral_constant<std::size_t, 0>>)
72 std::bind(mem_fn,
static_cast<class_t*
>(self)));
74 else if constexpr (std::is_same_v<std::integral_constant<std::size_t, arity>,
75 std::integral_constant<std::size_t, 1>>)
78 std::bind(mem_fn,
static_cast<class_t*
>(self), _1));
80 else if constexpr (std::is_same_v<std::integral_constant<std::size_t, arity>,
81 std::integral_constant<std::size_t, 2>>)
84 std::bind(mem_fn,
static_cast<class_t*
>(self), _1, _2));
87 static_assert(std::ratio_less_equal_v<std::ratio<arity>, std::ratio<2>>,
88 "Only fn with arity <= 2 are supported");