+2019-09-09 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement C++20 p1424 - 'constexpr' feature macro concerns,
+ Issue 3256 - Feature testing macro for constexpr algorithms,
+ and Issue 3257 - Missing feature testing macro update from P0858.
+ * include/std/version (__cpp_lib_constexpr_algorithms): Bump value.
+ * include/bits/algorithmfwd.h: Ditto.
+ * include/std/utility: Ditto.
+ * testsuite/25_algorithms/constexpr_macro.cc: Ditto.
+ * testsuite/25_algorithms/cpp_lib_constexpr.cc: New check for
+ __cpp_lib_constexpr macro in <algorith>.
+ * testsuite/20_util/exchange/constexpr.cc: Add check for
+ __cpp_lib_constexpr macro in <utility>.
+ * testsuite/25_algorithms/adjacent_find/constexpr.cc: Remove check for
+ __cpp_lib_constexpr_algorithms.
+ * testsuite/25_algorithms/all_of/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/any_of/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/binary_search/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/copy/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/copy_backward/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/copy_if/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/copy_n/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/count/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/count_if/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/equal/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/equal_range/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/fill/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/fill_n/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/find/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/find_end/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/find_first_of/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/find_if/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/find_if_not/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/for_each/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/generate/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/generate_n/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/is_heap/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/is_heap_until/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/is_partitioned/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/is_permutation/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/is_sorted/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/is_sorted_until/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/lower_bound/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/merge/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/mismatch/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/none_of/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/partition_copy/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/partition_point/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/remove/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/remove_copy/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/remove_if/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/replace_copy/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/replace_copy_if/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/replace_if/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/reverse_copy/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/rotate_copy/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/search/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/search_n/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/set_difference/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/set_intersection/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/set_union/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/transform/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/unique/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/unique_copy/constexpr.cc: Ditto.
+ * testsuite/25_algorithms/upper_bound/constexpr.cc: Ditto.
+
2019-09-09 Edward Smith-Rowland <3dw4rd@verizon.net>
Update docs for recent <span> and constexpr lib changes.
// adjacent_find
#if __cplusplus > 201703L
-# define __cpp_lib_constexpr_algorithms 201711L
-# define __cpp_lib_constexpr_swap_algorithms 201806L
+# define __cpp_lib_constexpr_algorithms 201806L
#endif
#if __cplusplus >= 201103L
#endif
#if __cplusplus > 201402L
-# define __cpp_lib_array_constexpr 201603
+# define __cpp_lib_array_constexpr 201803
#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
-#define __cpp_lib_string_view 201603
+#define __cpp_lib_string_view 201803
// Helper for basic_string and basic_string_view members.
constexpr size_t
#define __cpp_lib_exchange_function 201304
#if __cplusplus > 201703L
-# define __cpp_lib_constexpr_algorithms 201711L
+# define __cpp_lib_constexpr_algorithms 201806L
#endif
/// Assign @p __new_val to @p __obj and return its previous value.
#define __cpp_lib_addressof_constexpr 201603
#define __cpp_lib_any 201606L
#define __cpp_lib_apply 201603
-#define __cpp_lib_array_constexpr 201603
+#define __cpp_lib_array_constexpr 201803
#define __cpp_lib_as_const 201510
#define __cpp_lib_atomic_is_always_lock_free 201603
#define __cpp_lib_bool_constant 201505
# define __cpp_lib_shared_mutex 201505
#endif
#define __cpp_lib_shared_ptr_weak_type 201606
-#define __cpp_lib_string_view 201603
+#define __cpp_lib_string_view 201803
// #define __cpp_lib_to_chars 201611L
#define __cpp_lib_type_trait_variable_templates 201510L
#define __cpp_lib_uncaught_exceptions 201411L
#define __cpp_lib_atomic_ref 201806L
#define __cpp_lib_bind_front 201907L
#define __cpp_lib_bounded_array_traits 201902L
-#define __cpp_lib_constexpr_algorithms 201711L
-#define __cpp_lib_constexpr_swap_algorithms 201806L
+#define __cpp_lib_constexpr 201711L
+#define __cpp_lib_constexpr_algorithms 201806L
#if __cpp_impl_destroying_delete
# define __cpp_lib_destroying_delete 201806L
#endif
#include <utility>
+#ifndef __cpp_lib_constexpr_algorithms
+# error "Feature-test macro for constexpr algorithms missing"
+#elif __cpp_lib_constexpr_algorithms < 201806L
+# error "Feature-test macro for constexpr algorithms has wrong value"
+#endif
+
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> car{{0, 1, 2, 3, 4, 5, 6, 6, 8, 9, 9, 11}};
constexpr auto out0x = std::adjacent_find(car.begin(), car.end());
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 6> cae{{0, 2, 4, 6, 8, 10}};
constexpr auto out2 = std::all_of(cae.begin(), cae.end(),
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#ifndef __cpp_lib_constexpr_algorithms
# error "Feature-test macro for constexpr algorithms missing in <version>"
-#elif __cpp_lib_constexpr_algorithms != 201711L
+#elif __cpp_lib_constexpr_algorithms < 201806L
# error "Feature-test macro for constexpr algorithms has wrong value in <version>"
#endif
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr bool
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr bool
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr auto out9 = std::count_if(ca0.begin(), ca0.end(),
--- /dev/null
+// Copyright (C) 2019 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/>.
+
+// { dg-options "-std=gnu++2a" }
+// { dg-do compile { target c++2a } }
+
+#include <algorithm>
+
+#ifndef __cpp_lib_constexpr_algorithms
+# error "Feature-test macro for constexpr algorithms missing"
+#elif __cpp_lib_constexpr_algorithms < 201806L
+# error "Feature-test macro for constexpr algorithms has wrong value"
+#endif
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr auto oute = std::find(ca0.begin(), ca0.end(), 5);
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr std::array<int, 12> cas{{3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}};
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr auto outk = std::find_if_not(ca0.begin(), ca0.end(),
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr bool
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
// heap
constexpr std::array<int, 23>
ah{{22,
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
// heap
constexpr std::array<int, 23>
ahu{{22,
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr auto outv = std::is_sorted(ca0.begin(), ca0.end());
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> caeo{{0, 2, 4, 6, 8, 10, 1, 3, 5, 7, 9, 11}};
constexpr bool
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr bool
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr bool
test()
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> car{{0, 1, 2, 3, 4, 5, 6, 6, 8, 9, 9, 11}};
constexpr auto outuu = std::search_n(car.begin(), car.end(), 2, 6);
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_swap_algorithms
-# error "Feature-test macro for constexpr swap algorithms missing"
-#elif __cpp_lib_constexpr_swap_algorithms < 201806L
-# error "Feature-test macro for constexpr swap algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr std::array<int, 12> ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}};
constexpr bool
test()
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{
#include <algorithm>
#include <array>
-#ifndef __cpp_lib_constexpr_algorithms
-# error "Feature-test macro for constexpr algorithms missing"
-#elif __cpp_lib_constexpr_algorithms < 201711L
-# error "Feature-test macro for constexpr algorithms has wrong value"
-#endif
-
constexpr bool
test()
{