名前空間
変種
操作

std::span

提供: cppreference.com
< cpp‎ | container
ヘッダ <span> で定義
template<

    class T,
    std::ptrdiff_t Extent = std::dynamic_extent

> class span;
(C++20およびそれ以降)

クラステンプレート span はオブジェクトの隣接したシーケンスを参照できるオブジェクトを表します。 シーケンスの最初の要素は0の位置です。 span静的なエクステントを持つことも動的なエクステントを持つこともできます。 静的なエクステントでは要素数は既知で、型の中にエンコードされます。

一般的な実装では2つのメンバ、 T へのポインタとサイズだけを持ちます。

目次

[編集] テンプレート引数

T - 要素の型。 抽象クラス型でない完全型でなければなりません
Extent - シーケンス内の要素の数、または動的な場合 std::dynamic_extentExtent が負であって std::dynamic_extent でない場合、プログラムは ill-formed です

[編集] メンバ型

メンバ型 定義
element_type T
value_type std::remove_cv_t<T>
index_type std::ptrdiff_t
difference_type std::ptrdiff_t
pointer T*
reference T&
iterator その value_typevalue_type である処理系定義の RandomAccessIterator かつ ConstexprIterator かつ ContiguousIterator
const_iterator その value_typevalue_type である処理系定義の const な RandomAccessIterator かつ ConstexprIterator かつ ContiguousIterator
reverse_iterator std::reverse_iterator<iterator>
const_reverse_iterator std::reverse_iterator<const_iterator>

ノート: T が const 修飾されていなければ、 iterator は可変イテレータです。

Container のイテレータ型に対するすべての要件が spaniterator および const_iterator 型にも同様に適用されます。

[編集] メンバ定数

static constexpr std::ptrdiff_t extent = Extent;

[編集] メンバ関数

span を構築します
(パブリックメンバ関数) [edit]
span を代入します
(パブリックメンバ関数) [edit]
イテレータ
シーケンスの先頭を指すイテレータを返します
(パブリックメンバ関数) [edit]
シーケンスの終端を指すイテレータを返します
(パブリックメンバ関数) [edit]
シーケンスの先頭を指す逆イテレータを返します
(パブリックメンバ関数) [edit]
シーケンスの終端を指す逆イテレータを返します
(パブリックメンバ関数) [edit]
要素アクセス
シーケンスの要素にアクセスします
(パブリックメンバ関数) [edit]
要素のシーケンスの先頭を指すポインタを返します
(パブリックメンバ関数) [edit]
観察
シーケンスの要素数を返します
(パブリックメンバ関数) [edit]
シーケンスのサイズをバイトで返します
(パブリックメンバ関数) [edit]
シーケンスが空かどうか調べます
(パブリックメンバ関数) [edit]
サブビュー
シーケンスの最初の N 個の要素から構成されるサブスパンを取得します
(パブリックメンバ関数) [edit]
シーケンスの最後の N 個の要素から構成されるサブスパンを取得します
(パブリックメンバ関数) [edit]
サブスパンを取得します
(パブリックメンバ関数) [edit]

[編集] 非メンバ関数

2つの span の要素を比較します
(関数テンプレート) [edit]
span をそのベースとなるバイト列のビューに変換します
(関数テンプレート) [edit]

[編集] 非メンバ定数

ptrdiff_t 型の定数
(定数) [edit]

[編集] 推定ガイド