gcc/libstdc++-v3/include/bits
François Dumont 55826ab6d1 re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers)
2012-09-24  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/44436
	* include/bits/stl_tree.h
	(_Rb_tree<>::_M_insert_): Take _Base_ptr rather than
	_Const_Base_ptr.
	(_Rb_tree<>::_M_insert_node): New.
	(_Rb_tree<>::_M_get_insert_unique_pos): New, search code of
	_M_insert_unique method.
	(_Rb_tree<>::_M_insert_unique): Use latter.
	(_Rb_tree<>::_M_emplace_unique): New, likewise.
	(_Rb_tree<>::_M_get_insert_equal_pos): New, search code of
	_M_insert_equal method.
	(_Rb_tree<>::_M_insert_equal): Use latter.
	(_Rb_tree<>::_M_emplace_equal): New, likewise.
	(_Rb_tree<>::_M_get_insert_hint_unique_pos): New, search code of
	_M_insert_unique_ method.
	(_Rb_tree<>::_M_insert_unique_): Use latter.
	(_Rb_tree<>::_M_emplace_hint_unique): New, likewise.
	(_Rb_tree<>::_M_get_insert_hint_equal_pos): New, search code of
	_M_insert_equal_ method.
	(_Rb_tree<>::_M_insert_equal_): Use latter.
	(_Rb_tree<>::_M_emplace_hint_equal): New, likewise.
	(_Rb_tree<>::_M_insert_lower): Remove first _Base_ptr parameter,
	useless as always null.
	* include/bits/stl_map.h: Include <tuple> in C++11.
	(map<>::operator[](const key_type&)): Use
	_Rb_tree<>::_M_emplace_hint_unique in C++11.
	(map<>::operator[](key_type&&)): Likewise.
	(map<>::emplace): New.
	(map<>::emplace_hint): New.
	* include/bits/stl_multimap.h (multimap<>::emplace): New.
	(multimap<>::emplace_hint): New.
	* include/bits/stl_set.h (set<>::emplace): New.
	(set<>::emplace_hint): New.
	* include/bits/stl_multiset.h (multiset<>::emplace): New.
	(multiset<>::emplace_hint): New.
	* include/debug/map.h (std::__debug::map<>::emplace): New.
	(std::__debug::map<>::emplace_hint): New.
	* include/debug/multimap.h (std::__debug::multimap<>::emplace):
	New.
	(std::__debug::multimap<>::emplace_hint): New.
	* include/debug/set.h (std::__debug::set<>::emplace): New.
	(std::__debug::set<>::emplace_hint): New.
	* include/debug/multiset.h (std::__debug::multiset<>::emplace):
	New.
	(std::__debug::multiset<>::emplace_hint): New.
	* include/profile/map.h (std::__profile::map<>::emplace): New.
	(std::__profile::map<>::emplace_hint): New.
	* include/profile/multimap.h (std::__profile::multimap<>::emplace):
	New.
	(std::__profile::multimap<>::emplace_hint): New.
	* include/profile/set.h (std::__profile::set<>::emplace): New.
	(std::__profile::set<>::emplace_hint): New.
	* include/profile/multiset.h (std::__profile::multiset<>::emplace):
	New.
	(std::__profile::multiset<>::emplace_hint): New.
	* testsuite/util/testsuite_container_traits.h: Signal that emplace
	and emplace_hint are available on std::map, std::multimap,
	std::set and std::multiset in C++11.
	* testsuite/23_containers/map/operators/2.cc: New.
	* testsuite/23_containers/map/modifiers/emplace/1.cc: New.
	* testsuite/23_containers/multimap/modifiers/emplace/1.cc: New.
	* testsuite/23_containers/set/modifiers/emplace/1.cc: New.
	* testsuite/23_containers/multiset/modifiers/emplace/1.cc: New.

From-SVN: r191679
2012-09-24 19:53:36 +00:00
..
algorithmfwd.h
alloc_traits.h re PR libstdc++/53978 (Missing static const definitions in <bits/alloc_traits.h>) 2012-07-16 21:43:11 +01:00
allocator.h allocator.h (std::allocator): Base class is __allocator_base. 2012-03-19 21:41:15 +00:00
atomic_base.h PR libstdc++/54005 continued 2012-08-30 19:24:58 +00:00
basic_ios.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
basic_ios.tcc
basic_string.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
basic_string.tcc
boost_concept_check.h
c++0x_warning.h
c++config c++config (_GLIBCXX_END_NAMESPACE_CONTAINER): Fix order of closures. 2012-07-30 20:08:59 +00:00
char_traits.h
codecvt.h
concept_check.h re PR libstdc++/54248 (Comment in standard library header talks about boost) 2012-08-25 19:51:53 +01:00
cpp_type_traits.h
deque.tcc re PR libstdc++/52799 (deque::emplace(iterator, ...) tries to call push_front(...), which doesn't exist) 2012-03-31 01:56:55 +00:00
forward_list.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
forward_list.tcc forward_list.h (splice_after(const_iterator, forward_list&), [...]): Add per C++11 as published (and LWG 1310). 2012-04-11 17:31:57 +00:00
fstream.tcc
functexcept.h
functional_hash.h re PR libstdc++/52931 (std::hash shouldn't be defined for unknown types) 2012-04-11 11:27:50 +00:00
gslice_array.h
gslice.h
hashtable_policy.h 2012-08-10 François Dumont <fdumont@gcc.gnu.org> 2012-08-13 19:43:19 +00:00
hashtable.h re PR libstdc++/54296 (using the object in the map to erase element from the map crashes) 2012-09-05 19:41:16 +00:00
indirect_array.h
ios_base.h
istream.tcc
list.tcc revert: re PR libstdc++/49561 ([C++0x] std::list::size complexity) 2012-07-03 00:47:17 +00:00
locale_classes.h
locale_classes.tcc c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
locale_facets_nonio.h
locale_facets_nonio.tcc
locale_facets.h user.cfg.in: Update to Doxygen 1.8.0. 2012-03-08 05:20:52 +00:00
locale_facets.tcc
localefwd.h
mask_array.h
move.h
ostream_insert.h
ostream.tcc
postypes.h
ptr_traits.h re PR libstdc++/53978 (Missing static const definitions in <bits/alloc_traits.h>) 2012-07-16 21:43:11 +01:00
random.h random.h (random_device): Remove 'return' from constructor. 2012-08-30 16:33:09 +00:00
random.tcc Add interfaces to retrieve random numbers in bulk. 2012-08-27 14:13:15 +00:00
range_access.h
regex_compiler.h c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex_constants.h c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex_cursor.h c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex_error.h c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex_grep_matcher.h c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex_grep_matcher.tcc c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex_nfa.h c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex_nfa.tcc c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
regex.h c++config: Remove __regex nested namespace. 2012-06-28 07:50:34 +00:00
shared_ptr_base.h acinclude.m4: Update references to final C++11 standard. 2012-08-09 23:45:20 +01:00
shared_ptr.h acinclude.m4: Update references to final C++11 standard. 2012-08-09 23:45:20 +01:00
slice_array.h
sstream.tcc
stl_algo.h Fix PR52822 (stable_partition move-assigns object to itself) by scanning for... 2012-04-12 20:59:09 +00:00
stl_algobase.h revert: stl_algobase.h (max, min): Use conditional operator. 2012-09-23 19:58:16 +00:00
stl_bvector.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
stl_construct.h
stl_deque.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
stl_function.h re PR libstdc++/53339 (unordered_map::iterator requires Value to be complete type) 2012-05-15 10:00:19 +00:00
stl_heap.h
stl_iterator_base_funcs.h
stl_iterator_base_types.h
stl_iterator.h
stl_list.h revert: re PR libstdc++/49561 ([C++0x] std::list::size complexity) 2012-07-03 00:47:17 +00:00
stl_map.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
stl_multimap.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
stl_multiset.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
stl_numeric.h
stl_pair.h re PR libstdc++/53657 ([C++11] pair(pair&&) move constructor is non-trivial) 2012-07-13 08:59:58 +00:00
stl_queue.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
stl_raw_storage_iter.h
stl_relops.h
stl_set.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
stl_stack.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
stl_tempbuf.h 2012-05-29 François Dumont <fdumont@gcc.gnu.org> 2012-05-29 19:29:29 +00:00
stl_tree.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
stl_uninitialized.h
stl_vector.h re PR libstdc++/44015 (template parameters not documented) 2012-05-02 22:25:28 +00:00
stream_iterator.h
streambuf_iterator.h
streambuf.tcc
stringfwd.h
unique_ptr.h re PR libstdc++/54351 (~unique_ptr() should not set stored pointer to null) 2012-08-26 01:12:40 +01:00
unordered_map.h re PR libstdc++/53339 (unordered_map::iterator requires Value to be complete type) 2012-05-15 10:00:19 +00:00
unordered_set.h re PR libstdc++/53339 (unordered_map::iterator requires Value to be complete type) 2012-05-15 10:00:19 +00:00
uses_allocator.h
valarray_after.h
valarray_array.h
valarray_array.tcc
valarray_before.h
vector.tcc