为什么boost asio中的async_read将const MutableBufferSequence作为第二个参数?

时间:2018-05-18 08:22:18

标签: c++ boost const

boost asio库有async_read函数。

    template<
        typename AsyncReadStream,
        typename MutableBufferSequence,
        typename ReadHandler>
    void-or-deduced async_read(
        AsyncReadStream & s,
        const MutableBufferSequence & buffers,
        ReadHandler handler);

此函数用于从流中异步读取一定数量的字节数据。结果将放入第二个参数MutableBufferSequence。 const是什么意思?因为缓冲区很快就会被修改?

1 个答案:

答案 0 :(得分:1)

MutableBufferSequenceMutableBuffer s的容器。 MutableBuffer是对可变内存的固定长度区域的引用。请注意,它本身不包含内存。

在调用期间,MutableBufferSequence被复制(可能不止一次)并存储在异步操作中。

请注意,复制的唯一内容是对可变内存区域的引用,而不是内存本身。