Commit Graph

14 Commits

Author SHA1 Message Date
Glen Fernandes
5f485c2952 Spatial optimization for make_shared for arrays
Saves up to sizeof(void*) + sizeof(size_t) bytes for make_shared and saves
sizeof(void*) + sizeof(size_t) + sizeof(A) bytes for allocate_shared where A is the
supplied allocator type.
2014-02-10 20:54:48 -08:00
Glen Fernandes
c23bd41c44 Refactor make_shared for arrays
Refactor implementation to later simplify making an optimization [for the C++11
allocator case] for when sp_counted_impl_pda destruction invokes the
allocator's destroy function instead of the type's destructor.
2014-02-07 08:03:47 -08:00
Glen Fernandes
154a274916 Update make_shared for arrays to address 2070
This updates make_shared and allocate_shared for arrays in accordance with
report 2070 which requires that allocator_traits<A2>::construct(a2, ptr,
...) is used for construction and allocator_traits<A2>::destroy(a2, ptr)
is used for destruction instead of placement new and destructor
invocation.
2014-02-04 04:46:03 -08:00
Glen Fernandes
87e5debdc2 Minor cosmetic changes in make_shared for arrays 2014-01-28 03:40:54 -08:00
Glen Fernandes
630e4f49f3 Update make_shared for arrays to conform to N3870
Update make_shared and allocate_shared for arrays to be confined to the
set of overloads specified in N3870.
2014-01-23 20:40:46 -08:00
Glen Fernandes
32a28ec462 Support BOOST_NO_EXCEPTIONS in detail/array_utility.hpp to allow use when exceptions are disabled
[SVN r82408]
2013-01-08 21:39:54 +00:00
Glen Fernandes
4ba8d879f1 Use BOOST_NO_CXX11_RVALUE_REFERENCES and BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of the legacy macros. Rename identifiers of detail utility functions.
[SVN r81886]
2012-12-13 04:04:23 +00:00
Glen Fernandes
6e269872df Explicitly name detail array construct overloads for different parameter types.
[SVN r81859]
2012-12-11 18:04:09 +00:00
Glen Fernandes
6b0d96af96 Convert function parameter for inner array size into template parameter and make identifiers in array_deleter consistent with those in array_utility
[SVN r81782]
2012-12-08 05:25:50 +00:00
Glen Fernandes
f390d9e265 Change ordering of overload definitions in array_utility.hpp
[SVN r81759]
2012-12-07 16:40:20 +00:00
Glen Fernandes
ea22982865 Correctly use r-value reference semantics for Args and T in array utilities
[SVN r81752]
2012-12-07 07:42:42 +00:00
Glen Fernandes
09e77bc8df Optimization in initialization overload of array_construct for compilers to optimize it into the equivalent of a memset
[SVN r81750]
2012-12-07 06:45:26 +00:00
Glen Fernandes
b3f2ebedbc Special case array construction for trivially default-constructible types and array destruction for trivially-destroyable types.
[SVN r81749]
2012-12-07 03:10:22 +00:00
Glen Fernandes
1209531fe0 Refactoring in detail array_deleter before adding support for special-casing trivially default-constructible construction and trivially destroyable destruction.
[SVN r81748]
2012-12-07 01:53:35 +00:00