namespace boost {
typedef unspecified char16;
typedef unspecified char32;
}
namespace boost {
namespace unicode {
template<typename Range1, typename Range2>
tuple< sub_range< Range1 >, sub_range< Range1 >, sub_range< Range2 >, sub_range< Range2 > >
cat_limits(Range1 &&, Range2 &&);
template<typename Range1, typename Range2, typename... T>
unspecified composed_concated(const Range1 &, const Range2 &,
const T &...);
template<typename Range1, typename Range2, typename OutputIterator,
typename... T>
OutputIterator
composed_concat(const Range1 &, const Range2 &, OutputIterator,
const T &...);
template<typename Range1, typename Range2, typename... T>
unspecified decomposed_concated(const Range1 &, const Range2 &,
const T &...);
template<typename Range1, typename Range2, typename OutputIterator,
typename... T>
OutputIterator
decomposed_concat(const Range1 &, const Range2 &, OutputIterator,
const T &...);
}
}
namespace boost {
namespace unicode {
template<typename Range, typename OutputIterator, typename... T>
OutputIterator compose(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified composed(Range &&, const T &...);
template<typename Range, typename OutputIterator, typename... T>
OutputIterator decompose(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified decomposed(Range &&, const T &...);
template<typename Range, typename OutputIterator, typename... T>
OutputIterator normalize(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified normalized(Range &&, const T &...);
}
}
namespace boost {
namespace algorithm {
template<typename F, typename B> struct boundary_finder;
template<typename F, typename B>
boundary_finder< F, B > make_boundary_finder(F f, B b);
}
namespace unicode {
template<typename Match, typename Comp = is_equal> struct simple_finder;
template<typename F, typename B> struct boundary_finder;
template<typename Match, typename Comp>
simple_finder< Match, Comp >
make_simple_finder(const Match & match, Comp comp = Comp());
template<typename Match>
simple_finder< Match > make_simple_finder(const Match & match);
template<typename F, typename B>
boundary_finder< F, B > make_boundary_finder(F f, B b);
}
}
namespace boost {
namespace unicode {
template<char32 I> struct string_cp;
}
}
namespace boost {
namespace unicode {
bool is_high_surrogate(char32 v);
bool is_low_surrogate(char32 v);
bool is_surrogate(char32 v);
}
}
namespace boost {
namespace unicode {
namespace ucd {
struct block;
const char * as_string(block::type);
}
}
}
namespace boost {
namespace unicode {
namespace ucd {
struct category;
struct join_type;
struct bidi_class;
struct line_break;
struct decomposition_type;
struct grapheme_cluster_break;
struct word_break;
struct sentence_break;
const char * as_string(category::type);
const char * as_string(join_type::type);
const char * as_string(bidi_class::type);
const char * as_string(line_break::type);
const char * as_string(decomposition_type::type);
const char * as_string(grapheme_cluster_break::type);
const char * as_string(word_break::type);
const char * as_string(sentence_break::type);
}
}
}
namespace boost {
namespace unicode {
template<typename Range, typename OutputIterator, typename... T>
OutputIterator u16_encode(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified u16_encoded(Range &&, const T &...);
template<typename OutputIterator, typename... T>
unspecified u16_encoded_out(OutputIterator, const T &...);
template<typename Range, typename OutputIterator, typename... T>
OutputIterator u16_decode(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified u16_decoded(Range &&, const T &...);
template<typename Range> unspecified u16_bounded(Range &&);
template<typename Range, typename OutputIterator, typename... T>
OutputIterator u8_encode(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified u8_encoded(Range &&, const T &...);
template<typename OutputIterator, typename... T>
unspecified u8_encoded_out(OutputIterator, const T &...);
template<typename Range, typename OutputIterator, typename... T>
OutputIterator u8_decode(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified u8_decoded(Range &&, const T &...);
template<typename Range> unspecified u8_bounded(Range &&);
template<typename Range, typename OutputIterator, typename... T>
OutputIterator utf_decode(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified utf_decoded(Range &&, const T &...);
template<typename Range> unspecified utf_bounded(Range &&);
template<typename ValueType, typename Range, typename OutputIterator>
OutputIterator utf_encode(const Range & range, OutputIterator out);
template<typename ValueType, typename Range>
unspecified utf_encoded(Range && range);
template<typename ValueType, typename OutputIterator>
unspecified utf_encoded_out(OutputIterator out);
template<typename Range, typename OutputIterator, typename... T>
OutputIterator
latin1_encode(const Range &, OutputIterator, const T &...);
template<typename Range, typename... T>
unspecified latin1_encoded(Range &&, const T &...);
template<typename OutputIterator, typename... T>
unspecified latin1_encoded_out(OutputIterator, const T &...);
}
}