boost::asio::streambuf b;
...
void handler(const boost::system::error_code& e, std::size_t size)
{
if (!e)
{
std::stringstream sstr(std::string((std::istreambuf_iterator<char>(&b)),
std::istreambuf_iterator<char>()));
b.consume(size);
...
}
}
...
boost::asio::async_read_until(s, b, "END\r\n", handler);
调用该consume
方法时,所占用的内存streambuf b
不会被释放。内存会增长async_read_until
多次。我的用法正确吗?有什么办法可以释放the get pointer
streambuf之前的内存吗?