my question is about the theoretical explanation, because asio usually puts the user in charge of buffer lifetimes.
so why in the case of async_read_until(string_view delim) asio copies the delimiter allocating memory for this using std::string?