summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/25_algorithms/min
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-12-22 16:00:16 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-12-22 16:00:16 +0000
commitd3ab86117a4b67ca76491e13e4f705cfb9efb79e (patch)
treeb5cd8e6aea671c3f1c0fd2c4280e643555c216fb /libstdc++-v3/testsuite/25_algorithms/min
parent9bc2e56c8ce78f2d98e0c4398cbc81284e216b26 (diff)
downloadgcc-d3ab86117a4b67ca76491e13e4f705cfb9efb79e.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219015 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/25_algorithms/min')
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc
new file mode 100644
index 00000000000..615b18c8b03
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc
@@ -0,0 +1,28 @@
+// { dg-options "-std=gnu++14" }
+// { dg-do compile }
+
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <algorithm>
+#include <functional>
+
+static_assert(std::min(2, 1) == 1, "");
+static_assert(std::min(2, 1, std::greater<int>()) == 2, "");
+static_assert(std::min({2, 1}) == 1, "");
+static_assert(std::min({1, 2}, std::greater<int>())==2, "");
+