Changeset 81752


Ignore:
Timestamp:
Dec 7, 2012, 7:42:42 AM (6 years ago)
Author:
Glen Fernandes
Message:

Correctly use r-value reference semantics for Args and T in array utilities

Location:
trunk/boost/smart_ptr/detail
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/boost/smart_ptr/detail/array_deleter.hpp

    r81748 r81752  
    3535#if defined(BOOST_HAS_RVALUE_REFS)
    3636            void construct(T* memory, T&& value) {
    37                 array_construct(memory, size, value);
     37                array_construct_value(memory, size, sp_forward<T>(value));
    3838                object = memory;               
    3939            }
     
    4141            template<typename... Args>
    4242            void construct(T* memory, Args&&... args) {
    43                 array_construct(memory, size, args...);
     43                array_construct_args(memory, size, sp_forward<Args>(args)...);
    4444                object = memory;
    4545            }
     
    8585#if defined(BOOST_HAS_RVALUE_REFS)
    8686            void construct(T* memory, T&& value) {
    87                 array_construct(memory, N, value);
     87                array_construct_value(memory, N, sp_forward<T>(value));
    8888                object = memory;               
    8989            }
     
    9191            template<typename... Args>
    9292            void construct(T* memory, Args&&... args) {
    93                 array_construct(memory, N, args...);
     93                array_construct_args(memory, N, sp_forward<Args>(args)...);
    9494                object = memory;
    9595            }
  • trunk/boost/smart_ptr/detail/array_utility.hpp

    r81750 r81752  
    5656#if defined(BOOST_HAS_RVALUE_REFS)
    5757        template<typename T>
    58         inline void array_construct(T* memory, std::size_t size, T value) {
     58        inline void array_construct_value(T* memory, std::size_t size, T&& value) {
    5959            std::size_t i = 0;
    6060            try {
     
    7070#if defined(BOOST_HAS_VARIADIC_TMPL)
    7171        template<typename T, typename... Args>
    72         inline void array_construct(T* memory, std::size_t size, Args... args) {
     72        inline void array_construct_args(T* memory, std::size_t size, Args&&... args) {
    7373            std::size_t i = 0;
    7474            try {
Note: See TracChangeset for help on using the changeset viewer.