namespace boost { namespace text { template<code_point_iter I, std::sentinel_for< I > S = I> struct stream_safe_iterator; template<typename I, std::sentinel_for< I > S = I> struct stream_safe_view; typedef in_out_result< I, O > copy_result; template<typename I, typename S> constexpr auto operator==(stream_safe_iterator< I, S > const & lhs, S rhs); template<typename I, typename S> auto operator==(S lhs, stream_safe_iterator< I, S > const & rhs); template<typename I, typename S> constexpr auto operator!=(stream_safe_iterator< I, S > const & lhs, S rhs); template<typename I, typename S> auto operator!=(S lhs, stream_safe_iterator< I, S > const & rhs); namespace v1 { template<code_point_iter I, std::sentinel_for< I > S, std::weakly_incrementable O> constexpr copy_result< I, O > stream_safe_copy(I, S, O); template<code_point_range R, std::weakly_incrementable O> constexpr copy_result< std::ranges::borrowed_iterator_t< R >, O > stream_safe_copy(R &&, O); template<code_point_iter I, std::sentinel_for< I > S> constexpr code_point_iter auto stream_safe(I, S); template<code_point_range R> unspecified stream_safe(R &&); template<code_point_iter I, std::sentinel_for< I > S> constexpr bool is_stream_safe(I, S); template<code_point_range R> constexpr bool is_stream_safe(R &&); template<code_point_iter I, std::sentinel_for< I > S> unspecified as_stream_safe(I, S); template<code_point_range R> unspecified as_stream_safe(R &&); template<typename CPIter, typename Sentinel, typename OutIter> constexpr auto stream_safe_copy(CPIter first, Sentinel last, OutIter out); template<typename CPRange, typename OutIter> constexpr auto stream_safe_copy(CPRange && r, OutIter out); template<typename CPIter, typename Sentinel> constexpr auto stream_safe(CPIter first, Sentinel last); template<typename CPRange> constexpr auto stream_safe(CPRange && r); template<typename CPIter, typename Sentinel> constexpr auto is_stream_safe(CPIter first, Sentinel last); template<typename CPRange> constexpr auto is_stream_safe(CPRange && r); } } }namespace std { namespace ranges { } }