boost::text::v1::stream_safe
// In header: <boost/text/stream_safe.hpp> template<code_point_range R> unspecified stream_safe(R && r);
Copies the stream-safe portion of r to the beginning of r, and returns an iterator to the end of the copied range. Note that the type returned may not be I, since the result may be a new iterator that results from reconstituting unpacked iterators out of the input. The type returned will model code_point_iter. The result is returned as a borrowed_iterator_t in C++20 and later.
See Also:
https://unicode.org/reports/tr15/#Stream_Safe_Text_Format