From d1258c2a6d7deb56772c6fc6614afb409ef6656d Mon Sep 17 00:00:00 2001 From: Lynix Date: Fri, 5 Jun 2015 14:45:11 +0200 Subject: [PATCH] Core/Signal: Add move Connect method Former-commit-id: 1874faf23299ebac3e433195faa03c9eb6bd9ed4 --- include/Nazara/Core/Signal.hpp | 1 + include/Nazara/Core/Signal.inl | 6 ++++++ 2 files changed, 7 insertions(+) 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...))