From dca71c118d1e0fc646bb96a79e4bc29d08d9d5be Mon Sep 17 00:00:00 2001 From: cxl Date: Wed, 28 Sep 2016 19:18:54 +0000 Subject: [PATCH] Core: One::Create fixed to support multiple parameters git-svn-id: svn://ultimatepp.org/upp/trunk@10249 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Other.h | 4 ++++ uppsrc/Painter/Painter.upp | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/uppsrc/Core/Other.h b/uppsrc/Core/Other.h index b4d07c905..a80b1104b 100644 --- a/uppsrc/Core/Other.h +++ b/uppsrc/Core/Other.h @@ -44,6 +44,10 @@ public: template TT& Create(Args... args) { TT *q = new TT(args...); Attach(q); return *q; } + template // with C++ conforming compiler, this would not be neede - GCC bug workaround + TT& Create() { TT *q = new TT; Attach(q); return *q; } + template + T& Create(Args... args) { T *q = new T(args...); Attach(q); return *q; } T& Create() { T *q = new T; Attach(q); return *q; } template diff --git a/uppsrc/Painter/Painter.upp b/uppsrc/Painter/Painter.upp index f84e5eab9..7f9b4f24a 100644 --- a/uppsrc/Painter/Painter.upp +++ b/uppsrc/Painter/Painter.upp @@ -16,22 +16,22 @@ file BufferPainter.h, Xform2D.cpp, Approximate.cpp, - Stroker.cpp optimize_speed, + Stroker.cpp, Dasher.cpp, Transformer.cpp, - Interpolator.cpp optimize_speed, - Rasterizer.cpp optimize_speed, - RasterizerClip.cpp optimize_speed, - Path.cpp optimize_speed, + Interpolator.cpp, + Rasterizer.cpp, + RasterizerClip.cpp, + Path.cpp, Context.cpp, Fillers.h, - Fillers.cpp optimize_speed, + Fillers.cpp, RenderChar.cpp, - Render.cpp optimize_speed, - Image.cpp optimize_speed, - Mask.cpp optimize_speed, - Gradient.cpp optimize_speed, - RadialGradient.cpp optimize_speed, + Render.cpp, + Image.cpp, + Mask.cpp, + Gradient.cpp, + RadialGradient.cpp, OnPath.cpp, SVG readonly separator, SvgInternal.h,