gcc/libstdc++-v3/include/bits
Jonathan Wakely 9958c7eb58 Fix std::vector's use of temporary objects
* include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
	Define inline. Forward to _M_emplace_aux.
	(insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
	(_M_insert_rval, _M_emplace_aux): Declare new functions.
	(_Temporary_value): New RAII type using allocator to construct/destroy.
	(_S_insert_aux_assign): Remove.
	(_M_insert_aux): Make non-variadic.
	* include/bits/vector.tcc (insert(const_iterator, const value_type&)):
	Use _Temporary_value.
	(emplace(const_iterator, _Args&&...)): Remove definition.
	(_M_insert_rval, _M_emplace_aux): Define.
	(_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
	(_M_fill_insert): Use _Temporary_value.
	* testsuite/23_containers/vector/allocator/construction.cc: New test.
	* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
	Adjust expected results for emplacing an lvalue with reallocation.
	* testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
	expected results to account for construction/destruction of temporary
	using allocator.

From-SVN: r237985
2016-07-04 15:52:46 +01:00
..
algorithmfwd.h Update copyright years. 2016-01-04 15:30:50 +01:00
alloc_traits.h allocator_traits<allocator<T>> partial specialization 2016-01-11 16:47:58 +00:00
allocated_ptr.h Update copyright years. 2016-01-04 15:30:50 +01:00
allocator.h Update copyright years. 2016-01-04 15:30:50 +01:00
atomic_base.h Update copyright years. 2016-01-04 15:30:50 +01:00
atomic_futex.h Update copyright years. 2016-01-04 15:30:50 +01:00
basic_ios.h Update copyright years. 2016-01-04 15:30:50 +01:00
basic_ios.tcc libstdc++/70766 use std::addressof instead of operator& 2016-04-28 13:33:07 +01:00
basic_string.h libstdc++: Make certain exceptions transaction_safe. 2016-01-15 22:42:41 +00:00
basic_string.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
boost_concept_check.h Update copyright years. 2016-01-04 15:30:50 +01:00
c++0x_warning.h Update copyright years. 2016-01-04 15:30:50 +01:00
c++14_warning.h c++14_warning.h: Do not refer C++14 as experimental. 2016-04-19 16:29:05 +00:00
c++config Remove _GLIBCXX14_USE_CONSTEXPR 2016-05-25 10:36:28 +01:00
char_traits.h Update copyright years. 2016-01-04 15:30:50 +01:00
codecvt.h Update copyright years. 2016-01-04 15:30:50 +01:00
concept_check.h Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers. 2016-03-23 00:41:52 +00:00
cpp_type_traits.h libstdc++/69406 Fix test to check for supported headers 2016-01-21 13:33:27 +00:00
deque.tcc 2016-06-15 François Dumont <fdumont@gcc.gnu.org> 2016-06-15 20:09:56 +00:00
enable_special_members.h Update copyright years. 2016-01-04 15:30:50 +01:00
forward_list.h Update copyright years. 2016-01-04 15:30:50 +01:00
forward_list.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
fstream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
functexcept.h Update copyright years. 2016-01-04 15:30:50 +01:00
functional_hash.h Update copyright years. 2016-01-04 15:30:50 +01:00
gslice.h Update copyright years. 2016-01-04 15:30:50 +01:00
gslice_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
hashtable.h re PR libstdc++/71640 (include/c++/7.0.0/bits/hashtable.h:293:7: error: too many template parameters in template redeclaration) 2016-06-27 20:41:59 +00:00
hashtable_policy.h Remove _GLIBCXX14_USE_CONSTEXPR 2016-05-25 10:36:28 +01:00
indirect_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
ios_base.h Update copyright years. 2016-01-04 15:30:50 +01:00
istream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
list.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
locale_classes.h Update copyright years. 2016-01-04 15:30:50 +01:00
locale_classes.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
locale_conv.h Update copyright years. 2016-01-04 15:30:50 +01:00
locale_facets.h Add attribute((unused)) in libstdc++ headers 2016-04-18 16:44:12 +01:00
locale_facets.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
locale_facets_nonio.h Update copyright years. 2016-01-04 15:30:50 +01:00
locale_facets_nonio.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
localefwd.h Update copyright years. 2016-01-04 15:30:50 +01:00
mask_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
memoryfwd.h Update copyright years. 2016-01-04 15:30:50 +01:00
move.h libstdc++/68877 Reimplement std::__is_swappable 2016-01-12 21:19:58 +00:00
ostream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
ostream_insert.h Update copyright years. 2016-01-04 15:30:50 +01:00
parse_numbers.h Update copyright years. 2016-01-04 15:30:50 +01:00
postypes.h Update copyright years. 2016-01-04 15:30:50 +01:00
predefined_ops.h Update copyright years. 2016-01-04 15:30:50 +01:00
ptr_traits.h Update copyright years. 2016-01-04 15:30:50 +01:00
quoted_string.h Update copyright years. 2016-01-04 15:30:50 +01:00
random.h PR libstdc++/41759 reword static assertions in <random> 2016-04-18 19:03:50 +01:00
random.tcc PR libstdc++/41759 reword static assertions in <random> 2016-04-18 19:03:50 +01:00
range_access.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
regex_automaton.h Add attribute((unused)) in libstdc++ headers 2016-04-18 16:44:12 +01:00
regex_automaton.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
regex_compiler.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex_compiler.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
regex_constants.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex_error.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex_executor.h Update copyright years. 2016-01-04 15:30:50 +01:00
regex_executor.tcc re PR libstdc++/70745 (Wrong handling of regex_constant::match_not_eow and regex_constant::match_not_bow) 2016-04-23 03:58:37 +00:00
regex_scanner.h re PR libstdc++/69794 (std::regex_search match failure with regex object with flags grep|icase) 2016-02-17 03:33:02 +00:00
regex_scanner.tcc re PR libstdc++/69794 (std::regex_search match failure with regex object with flags grep|icase) 2016-02-17 03:33:02 +00:00
shared_ptr.h Revert empty class parameter passing ABI changes. 2016-04-14 12:23:06 -04:00
shared_ptr_atomic.h Update copyright years. 2016-01-04 15:30:50 +01:00
shared_ptr_base.h Revert empty class parameter passing ABI changes. 2016-04-14 12:23:06 -04:00
slice_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
specfun.h Obvious typo in comment. 2016-04-18 02:30:31 +00:00
sstream.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
std_mutex.h * include/bits/std_mutex.h: Fix Doxygen @file name. 2016-01-15 12:37:15 +00:00
stl_algo.h libstdc++/71545 fix debug checks in binary search algorithms 2016-06-17 19:28:34 +01:00
stl_algobase.h libstdc++/71545 fix debug checks in binary search algorithms 2016-06-17 19:28:34 +01:00
stl_bvector.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_construct.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_deque.h 2016-06-16 François Dumont <fdumont@gcc.gnu.org> 2016-06-16 20:34:08 +00:00
stl_function.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_heap.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_iterator.h Use std::addressof in insert iterators, allocators and promises 2016-01-07 15:01:33 +00:00
stl_iterator_base_funcs.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_iterator_base_types.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_list.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_map.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_multimap.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_multiset.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_numeric.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_pair.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
stl_queue.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
stl_raw_storage_iter.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_relops.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_set.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_stack.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
stl_tempbuf.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_tree.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_uninitialized.h Update copyright years. 2016-01-04 15:30:50 +01:00
stl_vector.h Fix std::vector's use of temporary objects 2016-07-04 15:52:46 +01:00
stream_iterator.h libstdc++/70766 use std::addressof instead of operator& 2016-04-28 13:33:07 +01:00
streambuf.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
streambuf_iterator.h Update copyright years. 2016-01-04 15:30:50 +01:00
stringfwd.h Update copyright years. 2016-01-04 15:30:50 +01:00
uniform_int_dist.h PR libstdc++/41759 reword static assertions in <random> 2016-04-18 19:03:50 +01:00
unique_ptr.h Provide swappable traits (p0185r1) 2016-06-16 16:07:19 +01:00
unordered_map.h Update copyright years. 2016-01-04 15:30:50 +01:00
unordered_set.h Update copyright years. 2016-01-04 15:30:50 +01:00
uses_allocator.h Revert empty class parameter passing ABI changes. 2016-04-14 12:23:06 -04:00
valarray_after.h Update copyright years. 2016-01-04 15:30:50 +01:00
valarray_array.h Update copyright years. 2016-01-04 15:30:50 +01:00
valarray_array.tcc Update copyright years. 2016-01-04 15:30:50 +01:00
valarray_before.h Constrain std::valarray functions and operators 2016-01-22 21:15:41 +00:00
vector.tcc Fix std::vector's use of temporary objects 2016-07-04 15:52:46 +01:00