namespace boost { namespace text { struct grapheme; template<code_point_iter I> struct grapheme_ref; int storage_code_units(grapheme const &); template<code_point_iter I> int storage_code_units(grapheme_ref< I >); template<code_point_iter I1, code_point_iter I2> constexpr bool operator==(grapheme_ref< I1 >, grapheme_ref< I2 >); template<code_point_iter I1, code_point_iter I2> constexpr bool operator!=(grapheme_ref< I1 >, grapheme_ref< I2 >); template<code_point_iter I> constexpr bool operator==(grapheme const &, grapheme_ref< I >); template<code_point_iter I> constexpr bool operator==(grapheme_ref< I >, grapheme const &); template<code_point_iter I> constexpr bool operator!=(grapheme const &, grapheme_ref< I >); template<code_point_iter I> constexpr bool operator!=(grapheme_ref< I >, grapheme const &); } }namespace std { namespace ranges { } }