C ++標準ライブラリは、コンテナオブジェクトのインターフェイスを指定するために使用されるさまざまな「概念」を提供します。たとえば、、、、およびの概念 をstd::vector
実装します。Container
Sequence
RandomAccessContainer
ReversibleContainer
C++03またはC++11で指定された、Sequence
要素間の連続したメモリを保証するaを説明する概念はありますか?
static_cast<void*>(&some_sequence[N]) == static_cast<void*>(&some_sequence[0] + N)>
これは、コンテナを、などの連続したメモリバッファを期待する関数で使用できるかどうかを示すため、便利な概念ですstd::istream::read
。
std::vector
実際には、 (そしてC ++ 11でのみ)実際に基になる連続バッファを保証するだけであることを私は知っています-しかし、この保証は、連続メモリを提供する汎用クラスを示す定義された「概念」にstd::string
固有ですか、それともありますか?std::vector
Sequence