92 virtual const char*
what()
const throw() {
return (
const char*)message.
get();}
94 message(g_strdup_printf(
"Utf8::ConversionError: %s", msg)) {}
96 message(g_strdup_printf(
"Utf8::ConversionError: %s", error->message)) {}
306 return g_utf8_validate(text.data(), text.size(), 0);
389 class ReverseIterator;
400 std::string::const_iterator pos;
501 std::string::const_iterator
base()
const {
return pos;}
516 Iterator(
const std::string::const_iterator& iter): pos(iter) {}
531 Iterator(
const std::string::iterator& iter): pos(iter) {}
564 const std::string::value_type* tmp = &(*pos);
568 pos += g_utf8_next_char(tmp) - tmp;
581 const std::string::value_type* tmp = &(*(pos-1));
583 pos -= tmp - g_utf8_prev_char(tmp);
599 return (iter1.
base() == iter2.
base());
608 return (iter1.
base() != iter2.
base());
617 return (iter1.
base() < iter2.
base());
626 return (iter1.
base() <= iter2.
base());
635 return (iter1.
base() > iter2.
base());
644 return (iter1.
base() >= iter2.
base());
706 std::string::const_iterator pos;
708 mutable std::string::const_iterator cache;
819 std::string::const_iterator
base()
const {
return pos;}
884 if (pos > cache) pos = cache;
889 const std::string::value_type* tmp = &(*(pos-1));
891 pos -= tmp - g_utf8_prev_char(tmp);
904 const std::string::value_type* tmp = &(*pos);
908 pos += g_utf8_next_char(tmp) - tmp;
922 return g_utf8_get_char(&(*(tmp.base())));
931 return (iter1.
base() == iter2.
base());
940 return (iter1.
base() != iter2.
base());
952 return (iter1.
base() > iter2.
base());
964 return (iter1.
base() >= iter2.
base());
976 return (iter1.
base() < iter2.
base());
988 return (iter1.
base() <= iter2.
base());