Core/Signal: Add const-variant of member functions Connect overload
I do speak english very wheel Former-commit-id: 4d688897a65ff6fcf793af8d10219bac9b28424a
This commit is contained in:
parent
65c4409f9c
commit
358fab7115
|
|
@ -37,6 +37,8 @@ class NzSignal
|
|||
Connection Connect(Callback&& func);
|
||||
template<typename O> Connection Connect(O& object, void (O::*method)(Args...));
|
||||
template<typename O> Connection Connect(O* object, void (O::*method)(Args...));
|
||||
template<typename O> Connection Connect(const O& object, void (O::*method)(Args...) const);
|
||||
template<typename O> Connection Connect(const O* object, void (O::*method)(Args...) const);
|
||||
|
||||
void operator()(Args... args) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -58,6 +58,26 @@ typename NzSignal<Args...>::Connection NzSignal<Args...>::Connect(O* object, voi
|
|||
});
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
template<typename O>
|
||||
typename NzSignal<Args...>::Connection NzSignal<Args...>::Connect(const O& object, void (O::*method) (Args...) const)
|
||||
{
|
||||
return Connect([&object, method] (Args&&... args)
|
||||
{
|
||||
return (object .* method) (std::forward<Args>(args)...);
|
||||
});
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
template<typename O>
|
||||
typename NzSignal<Args...>::Connection NzSignal<Args...>::Connect(const O* object, void (O::*method)(Args...) const)
|
||||
{
|
||||
return Connect([object, method] (Args&&... args)
|
||||
{
|
||||
return (object ->* method) (std::forward<Args>(args)...);
|
||||
});
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
void NzSignal<Args...>::operator()(Args... args) const
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue