diff --git a/source/mijin/async/signal.hpp b/source/mijin/async/signal.hpp index 880fffe..632b65a 100644 --- a/source/mijin/async/signal.hpp +++ b/source/mijin/async/signal.hpp @@ -65,7 +65,9 @@ public: template inline token_t connect(TObject& object, void (TObject::* handler)(TArgs...), Oneshot oneshot = Oneshot::NO, std::weak_ptr referenced = std::weak_ptr()) MIJIN_NOEXCEPT; inline void disconnect(token_t token) MIJIN_NOEXCEPT; - inline void emit(TArgs&&... args) MIJIN_NOEXCEPT; + + template + inline void emit(TArgs2&&... args) MIJIN_NOEXCEPT; }; // @@ -122,7 +124,8 @@ inline void Signal::disconnect(token_t token) MIJIN_NOEXCEPT } template -inline void Signal::emit(TArgs&&... args) MIJIN_NOEXCEPT +template +inline void Signal::emit(TArgs2&&... args) MIJIN_NOEXCEPT { std::lock_guard lock(handlersMutex_); @@ -137,7 +140,7 @@ inline void Signal::emit(TArgs&&... args) MIJIN_NOEXCEPT // invoke all handlers for (RegisteredHandler& handler : handlers_) { - handler.callable(std::forward(args)...); + handler.callable(std::forward(args)...); } // remove any oneshot