1 #ifndef INCLUDED_U5E_NORMALIZATION_FORM_KD 2 #define INCLUDED_U5E_NORMALIZATION_FORM_KD 5 #include <u5e/basic_grapheme.hpp> 6 #include <u5e/utf32ne_string.hpp> 7 #include <u5e/filter.hpp> 8 #include <u5e/compatibility_and_canonical_decomposition.hpp> 9 #include <u5e/canonical_combining_order.hpp> 21 template <
typename InputStorageType,
22 typename OutputStorageType = InputStorageType>
24 OutputStorageType& output) {
28 int count =
u5e::filter
29 (grapheme.codepoint_begin(),
30 grapheme.codepoint_end(),
basic_encodedstring< utf32ne, std::basic_string< int > > utf32ne_string
A basic_encodedstring of utf32ne and std::basic_string<int>
bool canonical_combining_order(int a, int b)
compare codepoints according to the canonical combining order
int normalization_form_kd(basic_grapheme< InputStorageType > grapheme, OutputStorageType &output)
u5e::filter algorithm for normalizing graphemes
iterator codepoint_begin()
Represents a single grapheme cluster.