diff options
Diffstat (limited to 'source/blender/freestyle/intern/view_map/AutoPtrHelper.h')
-rw-r--r-- | source/blender/freestyle/intern/view_map/AutoPtrHelper.h | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/source/blender/freestyle/intern/view_map/AutoPtrHelper.h b/source/blender/freestyle/intern/view_map/AutoPtrHelper.h index 9da109ab2a6..fb2a9d73d13 100644 --- a/source/blender/freestyle/intern/view_map/AutoPtrHelper.h +++ b/source/blender/freestyle/intern/view_map/AutoPtrHelper.h @@ -26,7 +26,6 @@ namespace Freestyle { -#if __cplusplus > 199711L template<typename T> class AutoPtr : public std::unique_ptr<T> { public: AutoPtr() : std::unique_ptr<T>() @@ -36,26 +35,16 @@ template<typename T> class AutoPtr : public std::unique_ptr<T> { { } - /* TODO(sergey): Is there more clear way to do this? */ + /* Mimic behavior of legacy auto_ptr. + * Keep implementation as small as possible, hens delete assignment operator. */ + template<typename X> AutoPtr(AutoPtr<X> &other) : std::unique_ptr<T>(other.get()) { other.release(); } + + template<typename X> AutoPtr &operator=(AutoPtr<X> &other) = delete; }; -#else -template<typename T> class AutoPtr : public std::auto_ptr<T> { - public: - AutoPtr() : std::auto_ptr<T>() - { - } - AutoPtr(T *ptr) : std::auto_ptr<T>(ptr) - { - } - AutoPtr(std::auto_ptr_ref<T> ref) : std::auto_ptr<T>(ref) - { - } -}; -#endif } /* namespace Freestyle */ |