diff --git a/include/Nazara/Core/Signal.hpp b/include/Nazara/Core/Signal.hpp index f0766a268..e31dc57b0 100644 --- a/include/Nazara/Core/Signal.hpp +++ b/include/Nazara/Core/Signal.hpp @@ -20,6 +20,7 @@ class NzSignal ~NzSignal() = default; void Connect(const Callback& func); + void Connect(Callback&& func); template void Connect(O& object, void (O::*method)(Args...)); template void Connect(O* object, void (O::*method)(Args...)); diff --git a/include/Nazara/Core/Signal.inl b/include/Nazara/Core/Signal.inl index e9b106483..59aa4e954 100644 --- a/include/Nazara/Core/Signal.inl +++ b/include/Nazara/Core/Signal.inl @@ -12,6 +12,12 @@ void NzSignal::Connect(const Callback& func) m_callbacks.push_back(func); } +template +void NzSignal::Connect(Callback&& func) +{ + m_callbacks.emplace_back(std::move(func)); +} + template template void NzSignal::Connect(O& object, void (O::*method) (Args...))