1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 // UNSUPPORTED: c++03, c++11, c++14, c++17
10 // UNSUPPORTED: libcpp-has-no-incomplete-ranges
11 
12 // <algorithm>
13 
14 // template<input_iterator I, sentinel_for<I> S,
15 //          weakly_incrementable O1, weakly_incrementable O2,
16 //          class Proj = identity, indirect_unary_predicate<projected<I, Proj>> Pred>
17 //   requires indirectly_copyable<I, O1> && indirectly_copyable<I, O2>
18 //   constexpr partition_copy_result<I, O1, O2>
19 //     partition_copy(I first, S last, O1 out_true, O2 out_false, Pred pred,
20 //                    Proj proj = {});                                                              // Since C++20
21 //
22 // template<input_range R, weakly_incrementable O1, weakly_incrementable O2,
23 //          class Proj = identity,
24 //          indirect_unary_predicate<projected<iterator_t<R>, Proj>> Pred>
25 //   requires indirectly_copyable<iterator_t<R>, O1> &&
26 //            indirectly_copyable<iterator_t<R>, O2>
27 //   constexpr partition_copy_result<borrowed_iterator_t<R>, O1, O2>
28 //     partition_copy(R&& r, O1 out_true, O2 out_false, Pred pred, Proj proj = {});                 // Since C++20
29 
30 #include <algorithm>
31 #include <array>
32 #include <concepts>
33 #include <functional>
34 #include <ranges>
35 
36 #include "almost_satisfies_types.h"
37 #include "test_iterators.h"
38 
39 // TODO: SFINAE tests.
40 
41 constexpr bool test() {
42   // TODO: main tests.
43   // TODO: A custom comparator works.
44   // TODO: A custom projection works.
45 
46   return true;
47 }
48 
49 int main(int, char**) {
50   test();
51   static_assert(test());
52 
53   return 0;
54 }
55