15#if !UCONFIG_NO_NORMALIZATION
29#ifndef CANITER_SKIP_ZEROES
30#define CANITER_SKIP_ZEROES TRUE
121#ifndef U_HIDE_INTERNAL_API
173 int32_t pieces_length;
174 int32_t *pieces_lengths;
178 int32_t current_length;
184 const Normalizer2Impl &nfcImpl;
190 Hashtable *getEquivalents2(Hashtable *fillinResult,
const char16_t *segment, int32_t segLen,
UErrorCode &status);
199 Hashtable *extract(Hashtable *fillinResult,
UChar32 comp,
const char16_t *segment, int32_t segLen, int32_t segmentPos,
UErrorCode &status);
This class allows one to iterate through all the strings that are canonically equivalent to a given s...
void reset()
Resets the iterator so that one can start again from the beginning.
UnicodeString next()
Get the next canonically equivalent string.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
static void permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status)
Dumb recursive implementation of permutation.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
void setSource(const UnicodeString &newSource, UErrorCode &status)
Set a new source for this iterator.
CanonicalIterator(const UnicodeString &source, UErrorCode &status)
Construct a CanonicalIterator object.
UnicodeString getSource()
Gets the NFD form of the current source we are iterating over.
virtual ~CanonicalIterator()
Destructor Cleans pieces.
Unicode normalization functionality for standard Unicode normalization or for using custom mapping ta...
UObject is the common ICU "boilerplate" class.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
int8_t UBool
The ICU boolean type.
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.