Library Evolution Working Group(LEWG)のドキュメントP0122R(2016-02-12)は、タイプの名前を正式に変更します。
array_viewspan
変更ログ
R0からの変更点
- 提案され
array_viewているタイプの名前をspan、コナ会議でのLEWGからのフィードバックに変更しました。
- [...]
以下も読むことができます:
標準への影響
この提案は純粋なライブラリ拡張です。標準のクラス、関数、ヘッダーを変更する必要はありません。byte型およびP0257で提案された型のエイリアシング動作の変更に依存する場合は、拡張されます。
ただし–採用する場合–この新しいタイプの標準ライブラリ関数をオーバーロードすると便利な場合があります(例はcopy())。
span標準C ++(C ++ 11)で実装されており、C ++コードの商用静的分析ツールおよび商用オフィス生産性ソフトウェアで正常に使用されています。オープンソースのリファレンス実装は、https://github.com/Microsoft/GSLで入手できます。
次の章では、このドキュメントは読み取り専用および読み取り/書き込み(変更可能)アクセスについて説明します。
要素タイプと変換
spanテンプレートパラメータを介して要素タイプで設定する必要がありますValueType。これは、抽象クラスタイプではない完全なオブジェクトタイプである必要があります。
spanカプセル化されたシーケンスへの読み取り専用または変更可能なアクセスをサポートします。読み取り専用データにアクセスするには、ユーザーはを宣言span<const T>でき、可変データへのアクセスにはを使用しspan<T>ます。
[...]
参照してください:ガイドラインサポートライブラリレビューspan<T>マリウスBancila(2016年3月)の定義からspan通りを:
ガイドラインサポートライブラリはで説明したタイプと機能のいくつかのマイクロソフトの実装であるC ++コアガイドライン
によって維持、標準C ++財団。GSLが提供するタイプの中には、span<T>以前はとして知られていましたarray_view<T>。
span<T>ポインター(およびサイズカウンター)または標準コンテナー(std::vectorまたはなど)の代わりに使用することをお勧めする非所有の連続メモリ範囲ですstd::array。