gcc/libstdc++-v3/include/debug
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
..
bitset bitset (operator[](size_t) const): Declare constexpr. 2011-11-19 11:50:44 +00:00
debug.h macros.h (__glibcxx_check_non_empty_range): Define. 2011-12-03 15:35:35 +00:00
deque formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign. 2012-03-09 10:37:34 +00:00
formatter.h formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign. 2012-03-09 10:37:34 +00:00
forward_list forward_list (forward_list::splice_after): Check allocators are equal. 2012-04-22 14:27:16 +01:00
functions.h functions.h (__check_partition_lower_aux): Remove redundant comparison with pivot value. 2012-08-03 19:34:49 +00:00
list formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign. 2012-03-09 10:37:34 +00:00
macros.h re PR libstdc++/53263 (priority_queue is very slow if -D_GLIBCXX_DEBUG is used) 2012-05-11 19:21:31 +00:00
map
map.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
multimap.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
multiset.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
safe_base.h user.cfg.in: Add macros, directories. 2011-12-10 15:33:06 +00:00
safe_iterator.h re PR libstdc++/53263 (priority_queue is very slow if -D_GLIBCXX_DEBUG is used) 2012-05-11 19:21:31 +00:00
safe_iterator.tcc safe_iterator.h (_BeforeBeginHelper<>:: _S_Is_Beginnest): Add. 2012-04-13 10:43:28 +00:00
safe_local_iterator.h safe_local_iterator.h (_Safe_local_iterator<>:: _Safe_local_iterator(const _Iterator&, size_type, const _Sequence*)): Fix typo. 2011-07-20 09:40:11 +00:00
safe_local_iterator.tcc user.cfg.in (PDF_HYPERLINKS): To NO. 2011-08-07 07:27:06 +00:00
safe_sequence.h user.cfg.in (PDF_HYPERLINKS): To NO. 2011-08-07 07:27:06 +00:00
safe_sequence.tcc debug.cc: Introduce a mutex pool in get_safe_base_mutex. 2010-11-25 20:53:39 +00:00
safe_unordered_base.h user.cfg.in (PDF_HYPERLINKS): To NO. 2011-08-07 07:27:06 +00:00
safe_unordered_container.h user.cfg.in (PDF_HYPERLINKS): To NO. 2011-08-07 07:27:06 +00:00
safe_unordered_container.tcc safe_unordered_sequence.h, [...]: Rename respectively in... 2011-07-21 19:56:36 +00:00
set
set.h re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers) 2012-09-24 19:53:36 +00:00
string formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign. 2012-03-09 10:37:34 +00:00
unordered_map re PR libstdc++/53657 ([C++11] pair(pair&&) move constructor is non-trivial) 2012-07-13 08:59:58 +00:00
unordered_set formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign. 2012-03-09 10:37:34 +00:00
vector formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign. 2012-03-09 10:37:34 +00:00