通常、boost.asio による非同期操作で使用されるバッファーの有効期間を管理するために、共有ポインターを使用してこの手法を使用します。
バッファがstd::string
オブジェクトの場合はどうなりますか (内部参照カウントなどを行うため、これは少し特殊だと思います)。非同期操作のハンドラに渡す文字列オブジェクトの共有ポインタはまだ必要ですか? または、以下は安全ですか?(そして、なぜ/なぜではないのですか?)
void handler()
{
}
void func()
{
std::ostringstream stringbuilder;
// fill stringbuilder
socket.async_send(boost::asio::buffer(stringbuilder.str()), boost:bind(handler));
}