C の "span" について
"span" 型は、メモリ内の連続した値のシーケンスを表す軽量の抽象化です。これは生のポインタとコンテナを組み合わせたものと見なされますが、後者のオーバーヘッドや所有権のセマンティクスはありません。
span を使用する場合
使用を検討してください割り当てられた長さまたはサイズが重要な場合は、生のポインターにまたがります。たとえば、次のような関数の代わりに、
void read_into(int* buffer, size_t buffer_size);
を使用できます。
void read_into(span<int> buffer);
ニーズに合った既存のコンテナがある場合は、span を使用しないでください。スパンは、標準ライブラリ コンテナを置き換えることを目的としたものではありません。
スパンを使用する利点
さらに、スパンはコードの可読性と静的分析を容易にし、役立ちます。可能性を特定するためにエラー。
可用性
C 20: Span は、C 20 の標準ライブラリに std::span として正式に採用されました。
C 17 または以前:
C 17 以前を使用している場合は、コア ガイドラインのサポート ライブラリ (GSL) に基づいた実装を提供する Microsoft の GSL や GSL-Lite などのサードパーティ ライブラリを通じてスパンにアクセスできます。 ).
さらにリソース:
以上がC で `std::span` を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。