diff --git a/uppsrc/Core/Callback0.h b/uppsrc/Core/Callback0.h index c136add55..3086991bf 100644 --- a/uppsrc/Core/Callback0.h +++ b/uppsrc/Core/Callback0.h @@ -64,8 +64,11 @@ inline Callback Proxy(Callback& cb) Callback callback(Callback cb1, Callback cb2); Callback& operator<<(Callback& a, Callback b); + +#ifdef CPP_11 inline Callback& operator<<(Callback& a, std::function fn) { return a << Callback(lambda(fn)); }; +#endif //0 args to Callback1 @@ -151,11 +154,13 @@ Callback1& operator<<(Callback1& a, Callback1 b) return a; } +#ifdef CPP_11 template Callback1& operator<<(Callback1& a, std::function b) { return a << Callback(lambda(b)); } +#endif //0 args to Callback2 diff --git a/uppsrc/Core/Map.h b/uppsrc/Core/Map.h index 7fe5a40cb..afa255de4 100644 --- a/uppsrc/Core/Map.h +++ b/uppsrc/Core/Map.h @@ -162,7 +162,7 @@ public: VectorMap() {} #ifdef CPP_11 - VectorMap(std::initializer_list> init) : AMap(init) {} + VectorMap(std::initializer_list> init) : B::AMap(init) {} #endif friend void Swap(VectorMap& a, VectorMap& b) { a.B::Swap(b); } @@ -195,7 +195,7 @@ public: ArrayMap() {} #ifdef CPP_11 - ArrayMap(std::initializer_list> init) : AMap(init) {} + ArrayMap(std::initializer_list> init) : B::AMap(init) {} #endif friend void Swap(ArrayMap& a, ArrayMap& b) { a.B::Swap(b); } diff --git a/uppsrc/CtrlCore/CtrlCore.h b/uppsrc/CtrlCore/CtrlCore.h index 26de730a1..61e0199bc 100644 --- a/uppsrc/CtrlCore/CtrlCore.h +++ b/uppsrc/CtrlCore/CtrlCore.h @@ -1137,7 +1137,9 @@ public: Callback operator<<=(Callback action) { WhenAction = action; return action; } Callback& operator<<(Callback action) { return WhenAction << action; } +#ifdef CPP_11 Callback& operator<<(std::function action) { return WhenAction << action; } +#endif void SetTimeCallback(int delay_ms, Callback cb, int id = 0); void KillTimeCallback(int id = 0);