Почему async_read в boost asio имеет const MutableBufferSequence в качестве второго аргумента? - PullRequest
0 голосов
/ 18 мая 2018

Библиотека 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 голосов
/ 18 мая 2018

A MutableBufferSequence является контейнером MutableBuffer с.A MutableBuffer является ссылкой на область фиксированной длины изменяемой памяти.Обратите внимание, что он сам по себе не содержит памяти.

Во время вызова MutableBufferSequence копируется (возможно, более одного раза) и сохраняется в асинхронной операции.

Обратите внимание, чтоскопированы ссылки на области изменяемой памяти, а не сама память.

...