23 concept not_overloaded_lambda =
requires(F&& f) {
27 static_assert(not_overloaded_lambda<
decltype([]{})>,
"aui::not_overloaded_lambda failed");
28 static_assert(not_overloaded_lambda<
decltype([](
int v){})>,
"aui::not_overloaded_lambda failed");
33 template<
typename... Lambdas>
35 using Lambdas::operator()...;
39 template<
typename... Lambdas>
42 template<
typename Return,
typename... Args>
45 template<
typename Return,
typename... Args>
47 using return_t = Return;
48 using args = std::tuple<Args...>;
51 template<not_overloaded_lambda Lambda>
63 constexpr T&& operator()(T&& t)
const noexcept {
return std::forward<T>(t); }
Definition: callables.h:43
Function object type whose operator() returns its argument unchanged.
Definition: callables.h:60
Definition: callables.h:34