summaryrefslogtreecommitdiff
path: root/src/common/utils2.hpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2013-06-11 21:55:13 -0700
committerBen Longbons <b.r.longbons@gmail.com>2013-06-11 23:27:33 -0700
commit8b5370313dcc00a45ea5c3e8b4c497bc00fd8e13 (patch)
tree15e8a4841af992e17794f26fc7991ed40c35bd51 /src/common/utils2.hpp
parent8c6072df499ef9068346fbe8313b63dbba1e4e82 (diff)
downloadtmwa-8b5370313dcc00a45ea5c3e8b4c497bc00fd8e13.tar.gz
tmwa-8b5370313dcc00a45ea5c3e8b4c497bc00fd8e13.tar.bz2
tmwa-8b5370313dcc00a45ea5c3e8b4c497bc00fd8e13.tar.xz
tmwa-8b5370313dcc00a45ea5c3e8b4c497bc00fd8e13.zip
Allegedly remove all manual memory management
Diffstat (limited to 'src/common/utils2.hpp')
-rw-r--r--src/common/utils2.hpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/common/utils2.hpp b/src/common/utils2.hpp
index 5f02beb..2218625 100644
--- a/src/common/utils2.hpp
+++ b/src/common/utils2.hpp
@@ -214,17 +214,17 @@ struct is_array_of_unknown_bound
: std::is_same<T, typename std::remove_extent<T>::type[]>
{};
-template<class T, class... A>
-typename std::enable_if<!is_array_of_unknown_bound<T>::value, std::unique_ptr<T>>::type make_unique(A&&... a)
+template<class T, class D=std::default_delete<T>, class... A>
+typename std::enable_if<!is_array_of_unknown_bound<T>::value, std::unique_ptr<T, D>>::type make_unique(A&&... a)
{
- return std::unique_ptr<T>(new T(a...));
+ return std::unique_ptr<T, D>(new T(a...));
}
-template<class T>
-typename std::enable_if<is_array_of_unknown_bound<T>::value, std::unique_ptr<T>>::type make_unique(size_t sz)
+template<class T, class D=std::default_delete<T>>
+typename std::enable_if<is_array_of_unknown_bound<T>::value, std::unique_ptr<T, D>>::type make_unique(size_t sz)
{
typedef typename std::remove_extent<T>::type E;
- return std::unique_ptr<E[]>(new E[sz]);
+ return std::unique_ptr<E[], D>(new E[sz]());
}
#endif // UTILS2_HPP