boost::asio::buffer
1つの要素だけでバッファシーケンスを作成することがあります。複数のバッファーからバッファーシーケンスを作成できるラッパーはありますか?
5796 次
1 に答える
14
ラッパーはありませんが、、、、などのMutableBufferSequenceおよびConstBufferSequenceの概念要件を満たす任意のコンテナーに複数のバッファーを提供できます。ほとんどの関数は、BufferSequenceの概念の観点から実装されており、単一のバッファーを要件を満たすタイプにラップするための便利な方法を提供します。このドキュメントでは簡単に説明しています。std::vector
std::list
boost::array
boost::asio::buffer
Boost.Asioシリアル化の例のスニペットを次に示します。
// Write the serialized data to the socket. We use "gather-write" to send
// both the header and the data in a single write operation.
std::vector<boost::asio::const_buffer> buffers;
buffers.push_back(boost::asio::buffer(outbound_header_));
buffers.push_back(boost::asio::buffer(outbound_data_));
boost::asio::async_write(socket_, buffers, handler);
ドキュメントにはBoost.Asioが必要に応じてコピーを作成する可能性があると記載buffers
されているため、コレクションをスコープ内に残す必要はないことに注意してください。ただし、基になるメモリとは、ハンドラが呼び出されるまで有効である必要があります。outbound_header_
outbound_data_
于 2013-01-19T13:47:21.100 に答える