re PR libstdc++/60271 ([DR2369] [C++1y] std::max(initializer_list<T>) cannot use...
authorVille Voutilainen <ville.voutilainen@gmail.com>
Mon, 22 Dec 2014 16:00:16 +0000 (18:00 +0200)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 22 Dec 2014 16:00:16 +0000 (16:00 +0000)
commit8dff34fe8e008344876bfc299203381000b5d6f7
treeb5cd8e6aea671c3f1c0fd2c4280e643555c216fb
parent3f5f101874330bf40011e95800ba4c753c631a43
re PR libstdc++/60271 ([DR2369] [C++1y] std::max(initializer_list<T>) cannot use std::max_element)

2014-12-22  Ville Voutilainen  <ville.voutilainen@gmail.com>

PR libstdc++/60271
C++14 constexpr min, max, minmax, min_element, max_element
and minmax_element. Also constexpr for 20.9.5-20.9.9,
aka various library functors.
* include/bits/c++config: Add _GLIBCXX14_CONSTEXPR.
* include/bits/algorithmfwd.h (min, max, minmax, min_element,
max_element): Use it.
* include/bits/predefined_ops.h (_Iter_less_iter, __iter_less_iter,
_Iter_comp_iter, __iter_comp_iter): Likewise.
* include/bits/stl_algo.h (minmax, __minmax_element, minmax_element,
min, max, __min_element, min_element, __max_element, max_element)
Likewise.
* include/bits/stl_algobase.h (min, max): Likewise.
* include/bits/stl_function.h (plus, minus, multiplies, divides,
modulus, negate, equal_to, not_equal_to, greater, less, greater_equal,
less_equal, logical_and, logical_or, logical_not, bit_and, bit_or,
bit_xor, bit_not, unary_negate, not1, binary_negate, not2): Likewise.
* testsuite/20_util/function_objects/constexpr.cc: New.
* testsuite/25_algorithms/max/constexpr.cc: Likewise.
* testsuite/25_algorithms/max_element/constexpr.cc: Likewise.
* testsuite/25_algorithms/min/constexpr.cc: Likewise.
* testsuite/25_algorithms/min_element/constexpr.cc: Likewise.
* testsuite/25_algorithms/minmax/constexpr.cc: Likewise.
* testsuite/25_algorithms/minmax_element/constexpr.cc: Likewise.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.

From-SVN: r219015
15 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/algorithmfwd.h
libstdc++-v3/include/bits/c++config
libstdc++-v3/include/bits/predefined_ops.h
libstdc++-v3/include/bits/stl_algo.h
libstdc++-v3/include/bits/stl_algobase.h
libstdc++-v3/include/bits/stl_function.h
libstdc++-v3/testsuite/20_util/function_objects/constexpr.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/max/constexpr.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/max_element/constexpr.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/min_element/constexpr.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc [new file with mode: 0644]
libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc