namespace boost { namespace text { template<typename Char, typename String> struct basic_unencoded_rope; template<typename Char, typename String, typename T> bool operator==(basic_unencoded_rope< Char, String >, T const &); template<typename Char, typename String, typename T> bool operator==(T const &, basic_unencoded_rope< Char, String >); template<typename Char, typename String, typename T> bool operator!=(basic_unencoded_rope< Char, String >, T const &); template<typename Char, typename String, typename T> bool operator!=(T const &, basic_unencoded_rope< Char, String >); template<typename Char, typename String, typename T> bool operator<(basic_unencoded_rope< Char, String >, T const &); template<typename Char, typename String, typename T> bool operator<(T const &, basic_unencoded_rope< Char, String >); template<typename Char, typename String, typename T> bool operator<=(basic_unencoded_rope< Char, String >, T const &); template<typename Char, typename String, typename T> bool operator<=(T const &, basic_unencoded_rope< Char, String >); template<typename Char, typename String, typename T> bool operator>(basic_unencoded_rope< Char, String >, T const &); template<typename Char, typename String, typename T> bool operator>(T const &, basic_unencoded_rope< Char, String >); template<typename Char, typename String, typename T> bool operator>=(basic_unencoded_rope< Char, String >, T const &); template<typename Char, typename String, typename T> bool operator>=(T const &, basic_unencoded_rope< Char, String >); template<typename Char, typename String, typename T> basic_unencoded_rope< Char, String > operator+(basic_unencoded_rope< Char, String >, T const &); template<typename Char, typename String, typename T> basic_unencoded_rope< Char, String > operator+(T const &, basic_unencoded_rope< Char, String >); } }