Allow calling Signal::emit() with arguments that aren't exactly the signal handlers types.
This commit is contained in:
parent
55fb360dfa
commit
21b3b2c03a
@ -65,7 +65,9 @@ public:
|
|||||||
template<typename TObject, typename TWeak = void>
|
template<typename TObject, typename TWeak = void>
|
||||||
inline token_t connect(TObject& object, void (TObject::* handler)(TArgs...), Oneshot oneshot = Oneshot::NO, std::weak_ptr<TWeak> referenced = std::weak_ptr<TWeak>()) MIJIN_NOEXCEPT;
|
inline token_t connect(TObject& object, void (TObject::* handler)(TArgs...), Oneshot oneshot = Oneshot::NO, std::weak_ptr<TWeak> referenced = std::weak_ptr<TWeak>()) MIJIN_NOEXCEPT;
|
||||||
inline void disconnect(token_t token) MIJIN_NOEXCEPT;
|
inline void disconnect(token_t token) MIJIN_NOEXCEPT;
|
||||||
inline void emit(TArgs&&... args) MIJIN_NOEXCEPT;
|
|
||||||
|
template<typename... TArgs2>
|
||||||
|
inline void emit(TArgs2&&... args) MIJIN_NOEXCEPT;
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -122,7 +124,8 @@ inline void Signal<TArgs...>::disconnect(token_t token) MIJIN_NOEXCEPT
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename... TArgs>
|
template<typename... TArgs>
|
||||||
inline void Signal<TArgs...>::emit(TArgs&&... args) MIJIN_NOEXCEPT
|
template<typename... TArgs2>
|
||||||
|
inline void Signal<TArgs...>::emit(TArgs2&&... args) MIJIN_NOEXCEPT
|
||||||
{
|
{
|
||||||
std::lock_guard lock(handlersMutex_);
|
std::lock_guard lock(handlersMutex_);
|
||||||
|
|
||||||
@ -137,7 +140,7 @@ inline void Signal<TArgs...>::emit(TArgs&&... args) MIJIN_NOEXCEPT
|
|||||||
// invoke all handlers
|
// invoke all handlers
|
||||||
for (RegisteredHandler& handler : handlers_)
|
for (RegisteredHandler& handler : handlers_)
|
||||||
{
|
{
|
||||||
handler.callable(std::forward<TArgs>(args)...);
|
handler.callable(std::forward<TArgs2>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove any oneshot
|
// remove any oneshot
|
||||||
|
Loading…
x
Reference in New Issue
Block a user