From c26cf898ca624fdde2193f807fa3e5cef2a5bb8e Mon Sep 17 00:00:00 2001 From: lisyarus Date: Thu, 4 Mar 2021 14:31:15 +0300 Subject: [PATCH] Bugfix in util::function: forward the callable instead of moving it --- libs/util/include/psemek/util/function.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/util/include/psemek/util/function.hpp b/libs/util/include/psemek/util/function.hpp index 06e5041d..15f8a458 100644 --- a/libs/util/include/psemek/util/function.hpp +++ b/libs/util/include/psemek/util/function.hpp @@ -175,7 +175,7 @@ namespace psemek::util if constexpr (uses_static_storage::value) { - new (reinterpret_cast(&storage_)) T(std::move(f)); + new (reinterpret_cast(&storage_)) T(std::forward(f)); static vtable m = { [](void * src, void * dst){ new (reinterpret_cast(dst)) T(std::move(*reinterpret_cast(src))); }, @@ -187,7 +187,7 @@ namespace psemek::util } else { - *reinterpret_cast(&storage_) = new T(std::move(f)); + *reinterpret_cast(&storage_) = new T(std::forward(f)); static vtable m = { [](void * src, void * dst){ *reinterpret_cast(dst) = *reinterpret_cast(src); *reinterpret_cast(src) = nullptr; },