forked from boostorg/smart_ptr
Merged revision(s) 81748-81750,81752,81759,81782 from trunk:
Refactoring in detail array_deleter before adding support for special-casing trivially default-constructible construction and trivially destroyable destruction. ........ Special case array construction for trivially default-constructible types and array destruction for trivially-destroyable types. ........ Optimization in initialization overload of array_construct for compilers to optimize it into the equivalent of a memset ........ Correctly use r-value reference semantics for Args and T in array utilities ........ Change ordering of overload definitions in array_utility.hpp ........ Convert function parameter for inner array size into template parameter and make identifiers in array_deleter consistent with those in array_utility ........ [SVN r81800]
This commit is contained in:
@@ -13,7 +13,6 @@
|
||||
#include <boost/smart_ptr/detail/allocate_array_helper.hpp>
|
||||
#include <boost/smart_ptr/detail/array_deleter.hpp>
|
||||
#include <boost/smart_ptr/detail/array_traits.hpp>
|
||||
#include <boost/smart_ptr/detail/sp_forward.hpp>
|
||||
#include <boost/smart_ptr/detail/sp_if_array.hpp>
|
||||
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
||||
#include <initializer_list>
|
||||
@@ -142,7 +141,7 @@ namespace boost {
|
||||
p3 = reinterpret_cast<T3*>(list);
|
||||
p1 = reinterpret_cast<T1*>(p2);
|
||||
d2 = get_deleter<boost::detail::array_deleter<T2[]> >(s1);
|
||||
d2->construct_list(p2, p3, M);
|
||||
d2->construct_list<M>(p2, p3);
|
||||
return boost::shared_ptr<T>(s1, p1);
|
||||
}
|
||||
template<typename T, typename A>
|
||||
@@ -166,7 +165,7 @@ namespace boost {
|
||||
p3 = reinterpret_cast<T3*>(list);
|
||||
p1 = reinterpret_cast<T1*>(p2);
|
||||
d2 = get_deleter<boost::detail::array_deleter<T2[N]> >(s1);
|
||||
d2->construct_list(p2, p3, M);
|
||||
d2->construct_list<M>(p2, p3);
|
||||
return boost::shared_ptr<T>(s1, p1);
|
||||
}
|
||||
#if defined(BOOST_HAS_RVALUE_REFS)
|
||||
|
||||
Reference in New Issue
Block a user