diff --git a/include/boost/smart_ptr/detail/array_deleter.hpp b/include/boost/smart_ptr/detail/array_deleter.hpp index f86ae61..9fb55e1 100644 --- a/include/boost/smart_ptr/detail/array_deleter.hpp +++ b/include/boost/smart_ptr/detail/array_deleter.hpp @@ -34,13 +34,13 @@ namespace boost { } #if defined(BOOST_HAS_RVALUE_REFS) void construct(T* memory, T&& value) { - array_construct(memory, size, value); + array_construct_value(memory, size, sp_forward(value)); object = memory; } #if defined(BOOST_HAS_VARIADIC_TMPL) template void construct(T* memory, Args&&... args) { - array_construct(memory, size, args...); + array_construct_args(memory, size, sp_forward(args)...); object = memory; } #endif @@ -84,13 +84,13 @@ namespace boost { } #if defined(BOOST_HAS_RVALUE_REFS) void construct(T* memory, T&& value) { - array_construct(memory, N, value); + array_construct_value(memory, N, sp_forward(value)); object = memory; } #if defined(BOOST_HAS_VARIADIC_TMPL) template void construct(T* memory, Args&&... args) { - array_construct(memory, N, args...); + array_construct_args(memory, N, sp_forward(args)...); object = memory; } #endif diff --git a/include/boost/smart_ptr/detail/array_utility.hpp b/include/boost/smart_ptr/detail/array_utility.hpp index bef3942..d60c867 100644 --- a/include/boost/smart_ptr/detail/array_utility.hpp +++ b/include/boost/smart_ptr/detail/array_utility.hpp @@ -55,7 +55,7 @@ namespace boost { } #if defined(BOOST_HAS_RVALUE_REFS) template - inline void array_construct(T* memory, std::size_t size, T value) { + inline void array_construct_value(T* memory, std::size_t size, T&& value) { std::size_t i = 0; try { for (; i < size; i++) { @@ -69,7 +69,7 @@ namespace boost { } #if defined(BOOST_HAS_VARIADIC_TMPL) template - inline void array_construct(T* memory, std::size_t size, Args... args) { + inline void array_construct_args(T* memory, std::size_t size, Args&&... args) { std::size_t i = 0; try { for (; i < size; i++) {