summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/UniquePtr.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/UniquePtr.h')
-rw-r--r--cpp/include/IceUtil/UniquePtr.h16
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