Skip to content

Commit 63af7be

Browse files
committed
P2325R3対応
1 parent bc2d183 commit 63af7be

File tree

11 files changed

+54
-37
lines changed

11 files changed

+54
-37
lines changed

reference/iterator/back_insert_iterator/op_constructor.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55
* function[meta id-type]
66

77
```cpp
8-
constexpr back_insert_iterator() noexcept = default; // (1) C++20
9-
10-
explicit back_insert_iterator(Container& x); // (2) C++03
11-
explicit constexpr back_insert_iterator(Container& x); // (2) C++20
8+
explicit back_insert_iterator(Container& x); // C++03
9+
explicit constexpr back_insert_iterator(Container& x); // C++20
1210
```
1311
1412
## 概要
@@ -17,13 +15,14 @@ explicit constexpr back_insert_iterator(Container& x); // (2) C++20
1715
1816
## 効果
1917
20-
- (1) : メンバ変数`container`を`nullptr`で初期化する
21-
- (2) : `x`へのポインタをメンバ変数`container`に保持する。
22-
- C++11まで : `x`へのポインタは、`&x`で取得する
23-
- C++14以降 : `x`へのポインタは、[`std::addressof`](/reference/memory/addressof.md)`(x)`で取得する
18+
`x`へのポインタをメンバ変数`container`に保持する
19+
20+
- C++11まで : `x`へのポインタは、`&x`で取得する
21+
- C++14以降 : `x`へのポインタは、[`std::addressof`](/reference/memory/addressof.md)`(x)`で取得する
2422
2523
2624
## 参照
2725
- [LWG Issue 2324. Insert iterator constructors should use `addressof()`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2324)
2826
- [P1032R1 Misc `constexpr` bits](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html)
2927
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
28+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/iterator/common_iterator/op_constructor.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* cpp20[meta cpp]
77

88
```cpp
9-
constexpr common_iterator() = default; // (1)
9+
constexpr common_iterator() requires default_initializable<I> = default; // (1)
1010

1111
constexpr common_iterator(I i); // (2)
1212

@@ -17,6 +17,7 @@ template<class I2, class S2>
1717
convertible_to<const S2&, S>
1818
constexpr common_iterator(const common_iterator<I2, S2>& x); // (4)
1919
```
20+
* default_initializable[link /reference/concepts/default_initializable.md]
2021
* convertible_to[link /reference/concepts/convertible_to.md]
2122
2223
## 概要
@@ -91,3 +92,4 @@ int main() {
9192

9293
## 参照
9394
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
95+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/iterator/counted_iterator/op_constructor.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
* cpp20[meta cpp]
77

88
```cpp
9-
constexpr counted_iterator() = default; // (1)
9+
constexpr counted_iterator() requires default_initializable<I> = default; // (1)
1010

11-
constexpr counted_iterator(I x, iter_difference_t<I> n); // (2)
11+
constexpr counted_iterator(I x, iter_difference_t<I> n); // (2)
1212

1313
template<class I2>
1414
requires convertible_to<const I2&, I>
15-
constexpr counted_iterator(const counted_iterator<I2>& x); // (3)
15+
constexpr counted_iterator(const counted_iterator<I2>& x); // (3)
1616
```
17+
* default_initializable[link /reference/concepts/default_initializable.md]
1718
* iter_difference_t[link /reference/iterator/iter_difference_t.md]
1819
* convertible_to[link /reference/concepts/convertible_to.md]
1920
@@ -71,3 +72,4 @@ int main() {
7172

7273
## 参照
7374
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
75+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/iterator/front_insert_iterator/op_constructor.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55
* function[meta id-type]
66

77
```cpp
8-
constexpr front_insert_iterator() noexcept = default; // (1) C++20
9-
10-
explicit front_insert_iterator(Container& x); // (2) C++03
11-
explicit constexpr front_insert_iterator(Container& x); // (2) C++20
8+
explicit front_insert_iterator(Container& x); // C++03
9+
explicit constexpr front_insert_iterator(Container& x); // C++20
1210
```
1311
1412
## 概要
@@ -17,13 +15,15 @@ explicit constexpr front_insert_iterator(Container& x); // (2) C++20
1715
1816
## 効果
1917
20-
- (1) : メンバ変数`container`を`nullptr`で初期化する
21-
- (2) : `x`へのポインタをメンバ変数`container`に保持する。
22-
- C++11まで : `x`へのポインタは、`&x`で取得する
23-
- C++14以降 : `x`へのポインタは、[`std::addressof`](/reference/memory/addressof.md)`(x)`で取得する
18+
`x`へのポインタをメンバ変数`container`に保持する
19+
20+
- C++11まで : `x`へのポインタは、`&x`で取得する
21+
- C++14以降 : `x`へのポインタは、[`std::addressof`](/reference/memory/addressof.md)`(x)`で取得する
2422
2523
2624
## 参照
2725
- [LWG Issue 2324. Insert iterator constructors should use `addressof()`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2324)
2826
- [P1032R1 Misc `constexpr` bits](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html)
2927
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
28+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)
29+

reference/iterator/insert_iterator/op_constructor.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55
* function[meta id-type]
66

77
```cpp
8-
insert_iterator() = default; // (1) C++20
9-
10-
insert_iterator(Container& x, typename Container::iterator i); // (2) C++03
11-
constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i); // (2) C++20
8+
insert_iterator(Container& x, typename Container::iterator i); // C++03
9+
constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i); // C++20
1210
```
1311
* iterator_t[link /reference/ranges/iterator_t.md]
1412
@@ -18,13 +16,13 @@ constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i); // (2)
1816
1917
## 効果
2018
21-
- (1) : メンバ変数`container`を`nullptr`で、挿入位置を示すイテレータ`i`を[`ranges::iterator_t`](/reference/ranges/iterator_t.md)`<Container>()`で初期化する。
22-
- (2) : コンテナ`x`へのポインタをメンバ変数`container`に保持し、挿入位置を示すイテレータ`i`をメンバ変数`iter`に保持する。
23-
- C++11まで : `x`へのポインタは、`&x`で取得する
24-
- C++14以降 : `x`へのポインタは、[`std::addressof`](/reference/memory/addressof.md)`(x)`で取得する
19+
コンテナ`x`へのポインタをメンバ変数`container`に保持し、挿入位置を示すイテレータ`i`をメンバ変数`iter`に保持する。
2520
21+
- C++11まで : `x`へのポインタは、`&x`で取得する
22+
- C++14以降 : `x`へのポインタは、[`std::addressof`](/reference/memory/addressof.md)`(x)`で取得する
2623
2724
## 参照
2825
- [LWG Issue 2324. Insert iterator constructors should use `addressof()`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2324)
2926
- [P1032R1 Misc `constexpr` bits](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html)
3027
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
28+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/iterator/ostream_iterator/op_constructor.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,5 @@ int main()
4444

4545
## 参照
4646
- [LWG Issue 2576. `istream_iterator` and `ostream_iterator` should use `std::addressof`](https://wg21.cmeerw.net/lwg/issue2576)
47+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
48+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/iterator/ostreambuf_iterator/op_constructor.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,5 @@ HelloHello
4949

5050
## 参照
5151

52-
52+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
53+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/iterator/weakly_incrementable.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
namespace std {
99
template<class I>
1010
concept weakly_incrementable =
11-
default_initializable<I> && movable<I> &&
11+
movable<I> &&
1212
requires(I i) {
1313
typename iter_difference_t<I>;
1414
requires is-signed-integer-like<iter_difference_t<I>>;
@@ -17,7 +17,6 @@ namespace std {
1717
};
1818
}
1919
```
20-
* default_initializable[link /reference/concepts/default_initializable.md]
2120
* movable[link /reference/concepts/movable.md]
2221
* iter_difference_t[link /reference/iterator/iter_difference_t.md]
2322
* is-signed-integer-like[link /reference/iterator/is_integer_like.md]
@@ -124,4 +123,4 @@ sample_not_incrementable is not weakly incrementable
124123
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
125124
- [P1522R1 Iterator Difference Type and Integer Overflow](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1522r1.pdf)
126125
- [P1207R4 Movability of single-pass iterators](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1207r4.pdf)
127-
126+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/ranges/iota_view.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
```cpp
88
namespace std::ranges {
99
template<weakly_incrementable W, semiregular Bound = unreachable_sentinel_t>
10-
requires weakly-equality-comparable-with<W, Bound> && semiregular<W>
10+
requires weakly-equality-comparable-with<W, Bound> && copyable<W>
1111
class iota_view : public view_interface<iota_view<W, Bound>> { …… }; // (1)
1212

1313
namespace views {
@@ -17,7 +17,7 @@ namespace std::ranges {
1717
```
1818
* is_object_v[link /reference/type_traits/is_object.md]
1919
* weakly_incrementable[link /reference/iterator/weakly_incrementable.md]
20-
* semiregular[link /reference/concepts/semiregular.md]
20+
* copyable[link /reference/concepts/copyable.md]
2121
* unreachable_sentinel_t[link /reference/iterator/unreachable_sentinel_t.md]
2222
* weakly-equality-comparable-with[link /reference/concepts/equality_comparable.md]
2323
* view_interface[link view_interface.md]
@@ -45,7 +45,7 @@ namespace std::ranges {
4545
4646
## テンプレートパラメータ制約
4747
- [`weakly_incrementable`](/reference/type_traits/is_object.md)`<W>`
48-
- [`semiregular`](/reference/concepts/semiregular.md)`<W>`
48+
- [`copyable`](/reference/concepts/copyable.md)`<W>`
4949
- [`semiregular`](/reference/concepts/semiregular.md)`<Bound>`
5050
- [`weakly-equality-comparable-with`](/reference/concepts/equality_comparable.md)`<W, Bound>`
5151
@@ -118,3 +118,4 @@ int main() {
118118
## 参照
119119
- [N4861 24 Ranges library](https://timsong-cpp.github.io/cppwp/n4861/ranges)
120120
- [C++20 ranges](https://techbookfest.org/product/5134506308665344)
121+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/ranges/view.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
```cpp
88
namespace std::ranges {
99
template<class T>
10-
concept view = range<T> && movable<T> && default_initializable<T> && enable_view<T>;
10+
concept view = range<T> && movable<T> && enable_view<T>;
1111
}
1212
```
1313
* range[link range.md]
1414
* movable[link /reference/concepts/movable.md]
15-
* default_initializable[link /reference/concepts/default_initializable.md]
1615
* enable_view[link enable_view.md]
1716
1817
## 概要
@@ -70,3 +69,4 @@ int main()
7069
## 参照
7170
- [N4861 24 Ranges library](https://timsong-cpp.github.io/cppwp/n4861/ranges)
7271
- [C++20 ranges](https://techbookfest.org/product/5134506308665344)
72+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

reference/span/span.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,21 @@
88
namespace std {
99
template <class ElementType, size_t Extent = dynamic_extent>
1010
class span;
11+
12+
13+
// viewコンセプトを有効化する
14+
template<class ElementType, size_t Extent>
15+
inline constexpr bool ranges::enable_view<span<ElementType, Extent>> = true;
16+
17+
// borrowed_rangeコンセプトを有効化する
18+
template<class ElementType, size_t Extent>
19+
inline constexpr bool ranges::enable_borrowed_range<span<ElementType, Extent>> = true;
1120
}
1221
```
1322
* size_t[link /reference/cstddef/size_t.md]
1423
* dynamic_extent[link dynamic_extent.md]
24+
* enable_view[link /reference/ranges/enable_view.md]
25+
* enable_borrowed_range[link /reference/ranges/enable_borrowed_range.md]
1526
1627
## 概要
1728
`std::span`は、シーケンスの所有権を保持せず、部分シーケンスを参照するクラスである。
@@ -263,3 +274,5 @@ int main()
263274
- [P2051R0 C++ Standard Library Issues to be moved in Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2051r0.html)
264275
- `const_iterator`, `const_reverse_iterator`, `cbegin()`, `cend()`, `crbegin()`, `crend()`を削除
265276
- [P2116R0 Remove tuple-like protocol support from fixed-extent `span`](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2116r0.html)
277+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
278+
- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html)

0 commit comments

Comments
 (0)