diff --git a/uppsrc/Core/Callback0.h b/uppsrc/Core/Callback0.h index 49bd86300..c136add55 100644 --- a/uppsrc/Core/Callback0.h +++ b/uppsrc/Core/Callback0.h @@ -64,6 +64,8 @@ inline Callback Proxy(Callback& cb) Callback callback(Callback cb1, Callback cb2); Callback& operator<<(Callback& a, Callback b); +inline +Callback& operator<<(Callback& a, std::function fn) { return a << Callback(lambda(fn)); }; //0 args to Callback1 @@ -149,6 +151,12 @@ Callback1& operator<<(Callback1& a, Callback1 b) return a; } +template +Callback1& operator<<(Callback1& a, std::function b) +{ + return a << Callback(lambda(b)); +} + //0 args to Callback2 template diff --git a/uppsrc/CtrlCore/CtrlCore.h b/uppsrc/CtrlCore/CtrlCore.h index cdecf6633..26de730a1 100644 --- a/uppsrc/CtrlCore/CtrlCore.h +++ b/uppsrc/CtrlCore/CtrlCore.h @@ -1135,7 +1135,9 @@ public: bool IsNullInstance() const { return GetData().IsNull(); } Callback operator<<=(Callback action) { WhenAction = action; return action; } - Callback& operator<<(Callback action) { return WhenAction << action; } + + Callback& operator<<(Callback action) { return WhenAction << action; } + Callback& operator<<(std::function action) { return WhenAction << action; } void SetTimeCallback(int delay_ms, Callback cb, int id = 0); void KillTimeCallback(int id = 0);