From 26bdc183ff0ba225376856e2a7215ca569ff22d3 Mon Sep 17 00:00:00 2001 From: cxl Date: Mon, 31 Aug 2015 07:09:46 +0000 Subject: [PATCH] .developing C++11 support git-svn-id: svn://ultimatepp.org/upp/trunk@8874 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Callback0.h | 8 ++++++++ uppsrc/CtrlCore/CtrlCore.h | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) 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);