@@ -13,12 +13,35 @@ namespace std::ranges {
1313 no-throw-forward-iterator O, no-throw-sentinel<O > S2>
1414 requires constructible_from<iter_value_t<O >, iter_reference_t<I >>
1515 uninitialized_copy_result<I, O>
16- uninitialized_copy(I ifirst, S1 ilast, O ofirst, S2 olast); // (1) C++20
16+ uninitialized_copy(I ifirst,
17+ S1 ilast,
18+ O ofirst,
19+ S2 olast); // (1) C++20
20+ template <input_iterator I, sentinel_for<I > S1,
21+ no-throw-forward-iterator O, no-throw-sentinel<O > S2>
22+ requires constructible_from<iter_value_t<O >, iter_reference_t<I >>
23+ constexpr uninitialized_copy_result<I, O>
24+ uninitialized_copy(I ifirst,
25+ S1 ilast,
26+ O ofirst,
27+ S2 olast); // (1) C++26
1728
1829 template <input_range IR, no-throw-forward-range OR>
1930 requires constructible_from<range_value_t<OR >, range_reference_t<IR >>
20- uninitialized_copy_result<borrowed_iterator_t<IR >, borrowed_iterator_t<OR >>
21- uninitialized_copy(IR&& in_range, OR&& out_range); // (2) C++20
31+ uninitialized_copy_result<
32+ borrowed_iterator_t<IR >,
33+ borrowed_iterator_t<OR >
34+ >
35+ uninitialized_copy(IR&& in_range,
36+ OR&& out_range); // (2) C++20
37+ template <input_range IR, no-throw-forward-range OR>
38+ requires constructible_from<range_value_t<OR >, range_reference_t<IR >>
39+ constexpr uninitialized_copy_result<
40+ borrowed_iterator_t<IR >,
41+ borrowed_iterator_t<OR >
42+ >
43+ uninitialized_copy(IR&& in_range,
44+ OR&& out_range); // (2) C++26
2245}
2346```
2447* in_out_result[link /reference/algorithm/ranges_in_out_result.md]
@@ -152,3 +175,5 @@ int main()
152175
153176## 参照
154177- [ P9896R4 The One Ranges Proposal] ( https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf )
178+ - [ P3508R0 Wording for "constexpr for specialized memory algorithms"] ( https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3508r0.html )
179+ - C++26から` constexpr ` がついた
0 commit comments