diff options
Diffstat (limited to 'cpp/include/IceUtil/UniquePtr.h')
-rw-r--r-- | cpp/include/IceUtil/UniquePtr.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/cpp/include/IceUtil/UniquePtr.h b/cpp/include/IceUtil/UniquePtr.h index e58f32fd608..0a81df47fad 100644 --- a/cpp/include/IceUtil/UniquePtr.h +++ b/cpp/include/IceUtil/UniquePtr.h @@ -15,11 +15,12 @@ namespace IceUtil { -// -// This is temporary and very partial placeholder for std::unique_ptr, -// which is not yet widely available. -// +#ifdef ICE_CPP11_MAPPING +template<typename T> +using UniquePtr = std::unique_ptr<T>; + +#else template<typename T> class UniquePtr @@ -84,6 +85,11 @@ public: return _ptr; } + operator bool() const + { + return _ptr != 0; + } + void swap(UniquePtr& a) { T* tmp = a._ptr; @@ -96,6 +102,8 @@ private: T* _ptr; }; +#endif + } // End of namespace IceUtil #endif |