Skip to content

Commit d2963f0

Browse files
committed
mdspan/mdspan: 調整(#1077)
1 parent 125994a commit d2963f0

File tree

5 files changed

+28
-6
lines changed

5 files changed

+28
-6
lines changed

reference/mdspan/mdspan.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ namespace std {
2121
* default_accessor[link default_accessor.md]
2222
2323
## 概要
24-
`mdspan`は、任意のメモリブロックに対して多次元配列のようにアクセスする機能を提供するクラスである。
24+
`mdspan`は、任意のメモリブロックに対して多次元配列のようにアクセスする機能を提供するクラスである。
25+
`mdspan`それ自体は参照先メモリブロックを所有せず、[`[]`演算子](mdspan/op_at.md)を介して多次元配列のように見せかけるビュー(view)にすぎない。
26+
27+
クラスの名称`mdspan`は、1次元の範囲[`std::span`](../span/span.md)に対する多次元(MultiDimentional)拡張に由来する。
2528
2629
`mdspan`の特殊化`MDS`は[`copyable`](/reference/concepts/copyable.md)のモデルであり、かつ
2730
@@ -31,6 +34,14 @@ namespace std {
3134
3235
そのメンバ型`accessor_type`, `mapping_type`, `pointer`が[トリビアルコピー可能](/reference/type_traits/is_trivially_copyable.md)であるとき、`mdspan`の特殊化もトリビアルコピー可能である。
3336
37+
### テンプレートパラメータ
38+
`mdspan`クラスでは、テンプレートパラメータを介して多次元配列ビューをカスタマイズできる。
39+
40+
- `ElementType` : 多次元配列ビューの要素型
41+
- `Extents` : 多次元配列の次元数(rank)と要素数(extent)
42+
- `LayoutPolicy` : 多次元配列インデクスと要素位置の対応関係
43+
- `AccessorPolicy` : 要素アクセス時の詳細挙動
44+
3445
### 説明専用メンバ変数
3546
`mdspan`クラスは、下記の説明専用メンバ変数を保持する。
3647
@@ -168,6 +179,8 @@ int main()
168179

169180
## 関連項目
170181
- [`extents`](extents.md)
182+
- [LayoutMappingPolicy](LayoutMappingPolicy.md)
183+
- [AccessorPolicy](AccessorPolicy.md)
171184

172185

173186
## 参照

reference/mdspan/mdspan/empty.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ int main()
5959

6060
## 関連項目
6161
- [`extents`](../extents.md)
62+
- [`size()`](size.md)
6263

6364

6465
## 参照

reference/mdspan/mdspan/mapping.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ constexpr const mapping_type& mapping() const noexcept;
1010
```
1111

1212
## 概要
13-
レイアウトマッピング`map_`を取得する。
13+
[レイアウトマッピング](../LayoutMapping.md)`map_`を取得する。
1414

1515

1616
## 戻り値

reference/mdspan/mdspan/size.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ constexpr size_type size() const noexcept;
1818

1919

2020
## 戻り値
21-
多次元配列サイズ[`extents()`]に対して、全次元の要素数を乗算した値。
21+
多次元配列サイズ[`extents()`](extents.md)に対して、全次元の要素数を乗算した値。
2222

2323

2424
## 例外
@@ -59,6 +59,7 @@ int main()
5959

6060
## 関連項目
6161
- [`extents`](../extents.md)
62+
- [`empty()`](empty.md)
6263

6364

6465
## 参照

reference/span/dynamic_extent.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ namespace std {
1414
* max()[link /reference/limits/numeric_limits/max.md]
1515
1616
## 概要
17-
`dynamic_extent`は、動的な要素数をもつことを[`std::span`](span.md)クラスに指示するための定数である
17+
`dynamic_extent`は、動的な要素数をもつことを[`std::span`](span.md)や[`std::mdspan`](../mdspan/mdspan.md)に指示するための定数である
1818
19-
以下のような状況で、[`std::span`](span.md)クラスは動的な要素数をもつようになる:
19+
### std::span
20+
以下のような状況で、[`span`](span.md)クラスは動的な要素数をもつようになる:
2021
2122
- デフォルトテンプレート引数を使用 (デフォルトで`dynamic_extent`が使用される)
22-
- 動的な長さをもつ範囲を参照する ([`std::vector`](/reference/vector/vector.md)や、ポインタと要素数の組など)
23+
- 動的な長さをもつ範囲を参照する ([`vector`](/reference/vector/vector.md)や、ポインタと要素数の組など)
2324
- 参照範囲の変更を、動的な値で指定する (`s.`[`first`](span/first.md)`<N>()`は静的な要素数、`s.`[`first`](span/first.md)`(n)`は動的な要素数をもつ`span`オブジェクトを作成する)
2425
2526
@@ -66,6 +67,7 @@ int main()
6667
```
6768
```
6869

70+
6971
## バージョン
7072
### 言語
7173
- C++20
@@ -74,3 +76,8 @@ int main()
7476
- [Clang](/implementation.md#clang): 9.0
7577
- [GCC](/implementation.md#gcc): ??
7678
- [Visual C++](/implementation.md#visual_cpp): ??
79+
80+
81+
## 関連項目
82+
- C++20 [`span`](span.md)
83+
- C++23 [`mdspan`](../mdspan/mdspan.md)

0 commit comments

Comments
 (0)