Some heavily templated code I have has been inadvertently
calling asio::buffer(x), where x is the result of a previous call to asio::buffer.
Having updated from 1.20 to 1.24 (actually boost 1.77 to .180), I suspect it's
due to this new feature in the 1.24 revision history:
Added buffer() overloads for contiguous containers, such as std::span.
Debugging through, it looks like one of these new overloads is now picking up
the address of the buffer, and multiplying the size of the buffer by the number
of elements in the buffer.
I would expect the result of asio::buffer(asio::buffer(x)) to essentially be performing
a copy construction of whatever the first result was.
Some heavily templated code I have has been inadvertently calling
asio::buffer(x)
, where x is the result of a previous call to asio::buffer.Having updated from 1.20 to 1.24 (actually boost 1.77 to .180), I suspect it's due to this new feature in the 1.24 revision history:
Debugging through, it looks like one of these new overloads is now picking up the address of the buffer, and multiplying the size of the buffer by the number of elements in the buffer.
I would expect the result of asio::buffer(asio::buffer(x)) to essentially be performing a copy construction of whatever the first result was.