boost::text::utf8_view
// In header: <boost/text/transcode_view.hpp> template<utf8_iter I, std::sentinel_for< I > S = I> struct utf8_view : public stl_interfaces::view_interface< utf8_view< I, I > > { // types typedef I iterator; typedef S sentinel; // construct/copy/destruct utf8_view(); utf8_view(iterator, sentinel); // public member functions constexpr iterator begin() const; constexpr sentinel end() const; // friend functions std::ostream & operator<<(std::ostream &, utf8_view); std::wostream & operator<<(std::wostream &, utf8_view); };