Read data into a dynamic buffer sequence, or into a streambuf, until it contains a delimiter, matches a regular expression, or a function object indicates a match.
template< typename SyncReadStream, typename DynamicBuffer> std::size_t read_until( SyncReadStream & s, DynamicBuffer && buffers, char delim); » more... template< typename SyncReadStream, typename DynamicBuffer> std::size_t read_until( SyncReadStream & s, DynamicBuffer && buffers, char delim, std::error_code & ec); » more... template< typename SyncReadStream, typename DynamicBuffer> std::size_t read_until( SyncReadStream & s, DynamicBuffer && buffers, string_view delim); » more... template< typename SyncReadStream, typename DynamicBuffer> std::size_t read_until( SyncReadStream & s, DynamicBuffer && buffers, string_view delim, std::error_code & ec); » more...