1 #ifndef INCLUDED_U5E_NORMALIZATION_FORM_D 2 #define INCLUDED_U5E_NORMALIZATION_FORM_D 5 #include <u5e/basic_grapheme.hpp> 6 #include <u5e/utf32ne_string.hpp> 7 #include <u5e/filter.hpp> 8 #include <u5e/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(grapheme.codepoint_begin(),
29 grapheme.codepoint_end(),
basic_encodedstring< utf32ne, std::basic_string< int > > utf32ne_string
A basic_encodedstring of utf32ne and std::basic_string<int>
int normalization_form_d(basic_grapheme< InputStorageType > grapheme, OutputStorageType &output)
u5e::filter algorithm for normalizing graphemes
bool canonical_combining_order(int a, int b)
compare codepoints according to the canonical combining order
iterator codepoint_begin()
Represents a single grapheme cluster.