boost::unicode::decomposer
// In header: <boost/unicode/compose_fwd.hpp> struct decomposer { // types typedef char32 input_type; typedef char32 output_type; typedef combining_max max_output; // construct/copy/destruct decomposer(unsigned = BOOST_UNICODE_OPTION(ucd::decomposition_type::canonical)); // public member functions template<typename In, typename Out> Out ltr(In &, In, Out); template<typename In, typename Out> Out rtl(In, In &, Out); // private member functions template<typename Range, typename Out> Out decompose_impl(const Range &, Out); template<typename In, typename Out> Out decompose_impl(In, In, Out, std::output_iterator_tag *); template<typename In, typename Out> Out decompose_impl(In, In, Out, std::random_access_iterator_tag *); template<typename OutputIterator> OutputIterator decompose_rec(char32, OutputIterator); };
Model of Converter
that decomposes a combining character sequence, i.e. it transforms a combining character sequence into its canonically ordered decomposed equivalent. It applies UCD decompositions that match mask
recursively as well as the Hangul decompositions if mask
matches canonical decompositions.
decomposer
public member functionstemplate<typename In, typename Out> Out ltr(In & begin, In end, Out out);
Throws std::out_of_range
if [begin
, end
[ is not stream-safe.
Postconditions: |
|
template<typename In, typename Out> Out rtl(In begin, In & end, Out out);
Throws std::out_of_range
if [begin
, end
[ is not stream-safe.
Postconditions: |
|
decomposer
private member functionstemplate<typename Range, typename Out> Out decompose_impl(const Range & range, Out out);
template<typename In, typename Out> Out decompose_impl(In begin, In end, Out out, std::output_iterator_tag *);
template<typename In, typename Out> Out decompose_impl(In begin, In end, Out out, std::random_access_iterator_tag *);
template<typename OutputIterator> OutputIterator decompose_rec(char32 ch, OutputIterator out);