diff --git a/components/util/include/util/inplace_function.h b/components/util/include/util/inplace_function.h index 93cc254..4bc1024 100644 --- a/components/util/include/util/inplace_function.h +++ b/components/util/include/util/inplace_function.h @@ -59,7 +59,7 @@ public: return_t operator()(args_t... args) { if (mWrapper) - mWrapper(mStorage, args...); + return mWrapper(mStorage, args...); else throw std::bad_function_call(); } @@ -77,7 +77,7 @@ public: requires std::is_invocable_r_v void bind() { mWrapper = [](storage_t, args_t... args) { - std::invoke(F, std::forward(args)...); + return std::invoke(F, std::forward(args)...); }; } @@ -96,8 +96,8 @@ public: new (mStorage)(class_t*){&c}; mWrapper = [](storage_t storage, args_t... args) { - std::invoke(F, reinterpret_cast(storage), - std::forward(args)...); + return std::invoke(F, reinterpret_cast(storage), + std::forward(args)...); }; } @@ -111,8 +111,8 @@ public: void bind(F f) { new (mStorage) F{std::move(f)}; mWrapper = [](storage_t storage, args_t... args) { - std::invoke(*reinterpret_cast(storage), - std::forward(args)...); + return std::invoke(*reinterpret_cast(storage), + std::forward(args)...); }; }