std::span
提供: cppreference.com
| ヘッダ <span> で定義
|
||
| template< class T, |
(C++20以上) | |
クラステンプレート span はオブジェクトの隣接したシーケンスを参照できるオブジェクトを表します。 シーケンスの最初の要素は0の位置です。 span は静的なエクステントを持つことも動的なエクステントを持つこともできます。 静的なエクステントでは要素数は既知で、型の中にエンコードされます。
一般的な実装では2つのメンバ、 T へのポインタとサイズだけを持ちます。
目次 |
[編集] テンプレート引数
| T | - | 要素の型。 抽象クラス型でない完全型でなければなりません |
| Extent | - | シーケンス内の要素の数、または動的な場合は std::dynamic_extent
|
[編集] メンバ型
| メンバ型 | 定義 |
element_type
|
T
|
value_type
|
std::remove_cv_t<T> |
index_type
|
std::size_t |
difference_type
|
std::ptrdiff_t |
pointer
|
T*
|
reference
|
T&
|
iterator
|
その value_type が value_type である処理系定義の LegacyRandomAccessIterator かつ ConstexprIterator かつ LegacyContiguousIterator
|
const_iterator
|
その value_type が value_type である処理系定義の const な LegacyRandomAccessIterator かつ ConstexprIterator かつ LegacyContiguousIterator
|
reverse_iterator
|
std::reverse_iterator<iterator> |
const_reverse_iterator
|
std::reverse_iterator<const_iterator> |
ノート: T が const 修飾されていなければ、 iterator は可変イテレータです。
Container のイテレータ型に対するすべての要件が span の iterator および const_iterator 型にも同様に適用されます。
[編集] メンバ定数
| static constexpr std::size_t extent = Extent; |
||
[編集] メンバ関数
span を構築します (パブリックメンバ関数) | |
span を代入します (パブリックメンバ関数) | |
イテレータ | |
| シーケンスの先頭を指すイテレータを返します (パブリックメンバ関数) | |
| シーケンスの終端を指すイテレータを返します (パブリックメンバ関数) | |
| シーケンスの先頭を指す逆イテレータを返します (パブリックメンバ関数) | |
| シーケンスの終端を指す逆イテレータを返します (パブリックメンバ関数) | |
要素アクセス | |
| 最初の要素にアクセスします (パブリックメンバ関数) | |
| 最後の要素にアクセスします (パブリックメンバ関数) | |
| シーケンスの要素にアクセスします (パブリックメンバ関数) | |
| 要素のシーケンスの先頭を指すポインタを返します (パブリックメンバ関数) | |
観察 | |
| シーケンスの要素数を返します (パブリックメンバ関数) | |
| シーケンスのサイズをバイトで返します (パブリックメンバ関数) | |
| シーケンスが空かどうか調べます (パブリックメンバ関数) | |
サブビュー | |
| シーケンスの最初の N 個の要素から構成されるサブスパンを取得します (パブリックメンバ関数) | |
| シーケンスの最後の N 個の要素から構成されるサブスパンを取得します (パブリックメンバ関数) | |
| サブスパンを取得します (パブリックメンバ関数) | |
[編集] 非メンバ関数
| スパンの先頭および終端を指すイテレータを返します (関数) | |
span をそのベースとなるバイト列のビューに変換します (関数テンプレート) | |
静的エクステントの span の要素をアクセスします (関数テンプレート) |
[編集] 非メンバ定数
| (C++20) |
span が動的エクステントを持つことを表す size_t 型の定数 (定数) |
[編集] ヘルパークラス
静的エクステントの span のサイズを取得します (クラステンプレートの特殊化) | |
静的エクステントの span の要素の型を取得します (クラステンプレートの特殊化) |

