gcc/libstdc++-v3/include
Jonathan Wakely 437f43cc78 PR67085 pass comparison functions by reference in heap algorithms
PR libstdc++/67085
	* include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
	converting constructors from _Iter_less_iter.
	(_Iter_comp_val, _Val_comp_iter): Add converting constructors from
	_Iter_comp_iter.
	(__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
	(__val_comp_iter(_Iter_comp_iter<C>): Likewise.
	* include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
	(__make_heap, __sort_heap): Change _Compare parameters to references.
	(__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
	(__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
	functions as lvalues.
	(is_heap): Call __is_heap_until directly to avoid copying __comp.
	* testsuite/23_containers/priority_queue/67085.cc: Adjust test to
	count copies during construction with empty sequence.

From-SVN: r244656
2017-01-19 23:07:52 +00:00
..
backward Update copyright years. 2017-01-01 13:07:43 +01:00
bits PR67085 pass comparison functions by reference in heap algorithms 2017-01-19 23:07:52 +00:00
c Update copyright years. 2017-01-01 13:07:43 +01:00
c_compatibility Update copyright years. 2017-01-01 13:07:43 +01:00
c_global PR79017 workaround incomplete C99 math on darwin 2017-01-09 17:15:58 +00:00
c_std Update copyright years. 2017-01-01 13:07:43 +01:00
debug Update copyright years. 2017-01-01 13:07:43 +01:00
decimal Update copyright years. 2017-01-01 13:07:43 +01:00
experimental PR69301 don't assume atomic<T> can default construct T 2017-01-18 18:36:45 +00:00
ext PR69301 don't assume atomic<T> can default construct T 2017-01-18 18:36:45 +00:00
parallel Update copyright years. 2017-01-01 13:07:43 +01:00
precompiled Update copyright years. 2017-01-01 13:07:43 +01:00
profile Remove unused include from Profile Mode header 2017-01-13 17:20:23 +00:00
std PR69301 don't assume atomic<T> can default construct T 2017-01-18 18:36:45 +00:00
tr1 Update copyright years. 2017-01-01 13:07:43 +01:00
tr2 Update copyright years. 2017-01-01 13:07:43 +01:00
Makefile.am PR78905 define _GLIBCXX_RELEASE macro 2017-01-19 16:40:46 +00:00
Makefile.in PR78905 define _GLIBCXX_RELEASE macro 2017-01-19 16:40:46 +00:00