.developing C++11 support

git-svn-id: svn://ultimatepp.org/upp/trunk@8874 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2015-08-31 07:09:46 +00:00
parent a5b107dce0
commit 26bdc183ff
2 changed files with 11 additions and 1 deletions

View file

@ -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<void ()> fn) { return a << Callback(lambda(fn)); };
//0 args to Callback1
@ -149,6 +151,12 @@ Callback1<P1>& operator<<(Callback1<P1>& a, Callback1<P1> b)
return a;
}
template <class P1>
Callback1<P1>& operator<<(Callback1<P1>& a, std::function<void (P1)> b)
{
return a << Callback(lambda(b));
}
//0 args to Callback2
template <class O, class M, class P1, class P2>

View file

@ -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<void ()> action) { return WhenAction << action; }
void SetTimeCallback(int delay_ms, Callback cb, int id = 0);
void KillTimeCallback(int id = 0);