动态缓冲区封装了内存存储,可以根据需要自动调整大小,内存被划分为输入序列和输出序列。这些内存区域是动态缓冲区序列的内部,但提供对元素的直接访问,以便它们可以有效地与 I/O 操作一起使用,例如套接字的 send 或 receive 操作。写入动态缓冲区序列对象的输出序列的数据将附加到同一对象的输入序列的末尾。
动态缓冲区类型 X 除了满足下面列出的要求外,还必须满足 MoveConstructible (C++ 标准, [moveconstructible]) 类型的要求。
在下表中,X 表示动态缓冲区类,x 表示类型为 X& 的值,x1 表示类型为 const X& 的值,n 表示类型为 size_t 的值,u 表示标识符。
表 13. DynamicBuffer_v1 要求
|
表达式 |
type |
断言/注 |
|---|---|---|
|
|
满足 ConstBufferSequence 要求的类型。 |
此类型表示与输入序列关联的内存。 |
|
|
满足 MutableBufferSequence 要求的类型。 |
此类型表示与输出序列关联的内存。 |
|
|
|
返回输入序列的大小(以字节为单位)。 |
|
|
|
返回允许的最大值,即输入序列和输出序列大小之和。 |
|
|
|
返回动态缓冲区在不需要重新分配的情况下可以容纳的输入序列和输出序列大小的最大之和。 |
|
|
|
返回一个常量缓冲区序列 |
|
|
|
要求: |
|
|
将输出序列开头 |
|
|
|
从输入序列的开头删除 |