Move the lttng::free util under the lttng::memory namespace
[lttng-tools.git] / src / common / make-unique-wrapper.hpp
index 50d1916f20239624525c5226a926f5e76f58e3af..282181cffa58439b9dd7642949a40701c3b67512 100644 (file)
@@ -38,10 +38,9 @@ namespace lttng {
  * a proper, idiomatic, wrapper.
  */
 
-namespace details
-{
+namespace memory {
 template <typename WrappedType, void (*DeleterFunction)(WrappedType *)>
-struct create_unique_class {
+struct create_deleter_class {
        struct deleter {
                void operator()(WrappedType *instance) const
                {
@@ -54,7 +53,6 @@ struct create_unique_class {
                return std::unique_ptr<WrappedType, deleter>(instance);
        }
 };
-} /* namespace details */
 
 /*
  * 'free' is a utility function for use with make_unique_wrapper. It makes it easier to
@@ -67,12 +65,14 @@ void free(Type *ptr)
 {
        std::free(ptr);
 }
+} /* namespace memory */
 
 template <typename WrappedType, void (*DeleterFunc)(WrappedType *)>
-std::unique_ptr<WrappedType, typename details::create_unique_class<WrappedType, DeleterFunc>::deleter>
-make_unique_wrapper(WrappedType *instance)
+std::unique_ptr<WrappedType,
+               typename memory::create_deleter_class<WrappedType, DeleterFunc>::deleter>
+make_unique_wrapper(WrappedType *instance = nullptr)
 {
-       const details::create_unique_class<WrappedType, DeleterFunc> unique_deleter;
+       const memory::create_deleter_class<WrappedType, DeleterFunc> unique_deleter;
 
        return unique_deleter(instance);
 }
This page took 0.02472 seconds and 4 git commands to generate.