diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libutil/cxx/local_shared_ptr.hxx | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libutil/cxx/local_shared_ptr.hxx b/src/libutil/cxx/local_shared_ptr.hxx index cf0875813..ac069f764 100644 --- a/src/libutil/cxx/local_shared_ptr.hxx +++ b/src/libutil/cxx/local_shared_ptr.hxx @@ -100,7 +100,7 @@ private: ptr = nullptr; } public: - explicit ptr_and_refcnt(T *_ptr, D d = std::default_delete<T>()) : ptr(_ptr), + explicit ptr_and_refcnt(T *_ptr, D &&d = std::default_delete<T>()) : ptr(_ptr), deleter(std::move(d)) {} virtual ~ptr_and_refcnt() = default; }; @@ -128,7 +128,7 @@ public: // custom deleter template<class Y, class D, typename std::enable_if< std::is_convertible<Y*, element_type*>::value, bool>::type = true> - explicit local_shared_ptr(Y* p, D d) : px(p), cnt(new detail::ptr_and_refcnt(p, std::move(d))) + explicit local_shared_ptr(Y* p, D &&d) : px(p), cnt(new detail::ptr_and_refcnt(p, std::forward<D>(d))) { } |