blob: 8decc93eb827f26aa3d06e3701ab159bcf024fc3 [file] [log] [blame]
// { dg-do compile { target c++26 } }
#include <algorithm>
#include <array>
constexpr auto
create_array()
{
return std::to_array({0, 10, 1, 2, 3, 3, 4, -1, -2, -4, 5, 6});
}
constexpr bool
test01()
{
auto ar = create_array();
auto pred = [](int i) { return i % 2 == 0; };
std::stable_partition(ar.begin(), ar.end(), pred);
return std::is_partitioned(ar.begin(), ar.end(), pred);
}
static_assert(test01());
constexpr bool
test02()
{
auto ar = create_array();
auto pred = [](int i) { return i % 2 == 0; };
std::ranges::stable_partition(ar, pred);
return std::ranges::is_partitioned(ar, pred);
}
static_assert(test02());
constexpr bool
test03()
{
auto ar = create_array();
auto pred = [](int i) { return i % 2 == 0; };
auto proj = [](int i) { return i + 1; };
std::ranges::stable_partition(ar, pred, proj);
return std::ranges::is_partitioned(ar, pred, proj);
}
static_assert(test03());