diff options
-rw-r--r-- | include/core/SkRefCnt.h | 6 | ||||
-rw-r--r-- | tests/RefCntTest.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/include/core/SkRefCnt.h b/include/core/SkRefCnt.h index 43251d0788..e2cf4456f8 100644 --- a/include/core/SkRefCnt.h +++ b/include/core/SkRefCnt.h @@ -11,6 +11,7 @@ #include "../private/SkAtomics.h" #include "../private/SkUniquePtr.h" #include "SkTypes.h" +#include <utility> /** \class SkRefCntBase @@ -326,4 +327,9 @@ private: T* fPtr; }; +template <typename T, typename... Args> +sk_sp<T> sk_make_sp(Args&&... args) { + return sk_sp<T>(new T(std::forward<Args>(args)...)); +} + #endif diff --git a/tests/RefCntTest.cpp b/tests/RefCntTest.cpp index e3f41bdd5d..e9d582d809 100644 --- a/tests/RefCntTest.cpp +++ b/tests/RefCntTest.cpp @@ -120,7 +120,7 @@ public: }; static sk_sp<Effect> Create() { - return sk_sp<Effect>(new Effect); + return sk_make_sp<Effect>(); } class Paint { |