The whole point of controlling the capture is controlling the memory layout, which is what C++ is all about.
Even with Asio, you don't really have to do this. It's just the style the examples follow, and Asio itself isn't necessarily the best design.