GOLDEN HOUR
DIR: /usr/include/unicode
UP
UPLOAD
Name
Size
Action
alphaindex.h
26.48 KB
DEL
appendable.h
8.49 KB
DEL
basictz.h
9.27 KB
DEL
brkiter.h
27.8 KB
DEL
bytestream.h
10.78 KB
DEL
bytestrie.h
20.77 KB
DEL
bytestriebuilder.h
7.08 KB
DEL
calendar.h
105.74 KB
DEL
caniter.h
7.43 KB
DEL
casemap.h
25.33 KB
DEL
char16ptr.h
7.22 KB
DEL
chariter.h
24.05 KB
DEL
choicfmt.h
23.91 KB
DEL
coleitr.h
13.76 KB
DEL
coll.h
56.23 KB
DEL
compactdecimalformat.h
6.88 KB
DEL
curramt.h
3.76 KB
DEL
currpinf.h
7.3 KB
DEL
currunit.h
4 KB
DEL
datefmt.h
40.67 KB
DEL
dbbi.h
1.19 KB
DEL
dcfmtsym.h
20.41 KB
DEL
decimfmt.h
87.19 KB
DEL
docmain.h
6.97 KB
DEL
dtfmtsym.h
37.7 KB
DEL
dtintrv.h
3.84 KB
DEL
dtitvfmt.h
46.52 KB
DEL
dtitvinf.h
18.62 KB
DEL
dtptngen.h
25.8 KB
DEL
dtrule.h
8.68 KB
DEL
edits.h
20.74 KB
DEL
enumset.h
2.08 KB
DEL
errorcode.h
4.84 KB
DEL
fieldpos.h
8.69 KB
DEL
filteredbrk.h
5.37 KB
DEL
fmtable.h
24.42 KB
DEL
format.h
12.5 KB
DEL
formattedvalue.h
9.75 KB
DEL
fpositer.h
3.04 KB
DEL
gender.h
3.33 KB
DEL
gregocal.h
31.71 KB
DEL
icudataver.h
1.03 KB
DEL
icuplug.h
11.88 KB
DEL
idna.h
12.7 KB
DEL
listformatter.h
9.27 KB
DEL
localebuilder.h
11.23 KB
DEL
localematcher.h
24.56 KB
DEL
localpointer.h
19.36 KB
DEL
locdspnm.h
7.12 KB
DEL
locid.h
47.68 KB
DEL
measfmt.h
11.33 KB
DEL
measunit.h
95.28 KB
DEL
measure.h
4.32 KB
DEL
messagepattern.h
33.71 KB
DEL
msgfmt.h
44.11 KB
DEL
normalizer2.h
34.03 KB
DEL
normlzr.h
30.94 KB
DEL
nounit.h
2.69 KB
DEL
numberformatter.h
84.25 KB
DEL
numberrangeformatter.h
27.95 KB
DEL
numfmt.h
49.76 KB
DEL
numsys.h
7.32 KB
DEL
parseerr.h
3.08 KB
DEL
parsepos.h
5.56 KB
DEL
platform.h
28.08 KB
DEL
plurfmt.h
25.2 KB
DEL
plurrule.h
18.34 KB
DEL
ptypes.h
3.49 KB
DEL
putil.h
6.33 KB
DEL
rbbi.h
26.58 KB
DEL
rbnf.h
48.73 KB
DEL
rbtz.h
15.6 KB
DEL
regex.h
84.34 KB
DEL
region.h
9.18 KB
DEL
reldatefmt.h
22.27 KB
DEL
rep.h
9.37 KB
DEL
resbund.h
18.07 KB
DEL
schriter.h
6.32 KB
DEL
scientificnumberformatter.h
6.4 KB
DEL
search.h
22.22 KB
DEL
selfmt.h
14.3 KB
DEL
simpleformatter.h
12.59 KB
DEL
simpletz.h
45.44 KB
DEL
smpdtfmt.h
71.01 KB
DEL
sortkey.h
11.18 KB
DEL
std_string.h
1.05 KB
DEL
strenum.h
9.92 KB
DEL
stringoptions.h
5.79 KB
DEL
stringpiece.h
10.35 KB
DEL
stringtriebuilder.h
15.33 KB
DEL
stsearch.h
21.3 KB
DEL
symtable.h
4.27 KB
DEL
tblcoll.h
36.61 KB
DEL
timezone.h
41.02 KB
DEL
tmunit.h
3.38 KB
DEL
tmutamt.h
4.9 KB
DEL
tmutfmt.h
7.85 KB
DEL
translit.h
65.82 KB
DEL
tzfmt.h
42.89 KB
DEL
tznames.h
16.85 KB
DEL
tzrule.h
35.37 KB
DEL
tztrans.h
6.12 KB
DEL
ubidi.h
89.56 KB
DEL
ubiditransform.h
12.65 KB
DEL
ubrk.h
23.97 KB
DEL
ucal.h
56.9 KB
DEL
ucasemap.h
15.18 KB
DEL
ucat.h
5.36 KB
DEL
uchar.h
141.24 KB
DEL
ucharstrie.h
22.58 KB
DEL
ucharstriebuilder.h
7.21 KB
DEL
uchriter.h
13.2 KB
DEL
uclean.h
11.21 KB
DEL
ucnv.h
83.09 KB
DEL
ucnv_cb.h
6.59 KB
DEL
ucnv_err.h
20.99 KB
DEL
ucnvsel.h
6.14 KB
DEL
ucol.h
61.46 KB
DEL
ucoleitr.h
9.46 KB
DEL
uconfig.h
12.07 KB
DEL
ucpmap.h
5.53 KB
DEL
ucptrie.h
22.46 KB
DEL
ucsdet.h
14.67 KB
DEL
ucurr.h
16.12 KB
DEL
udat.h
61.38 KB
DEL
udata.h
15.56 KB
DEL
udateintervalformat.h
10.74 KB
DEL
udatpg.h
26.8 KB
DEL
udisplaycontext.h
5.89 KB
DEL
uenum.h
7.78 KB
DEL
ufieldpositer.h
4.36 KB
DEL
uformattable.h
10.94 KB
DEL
uformattedvalue.h
12.12 KB
DEL
ugender.h
2 KB
DEL
uidna.h
33.37 KB
DEL
uiter.h
22.77 KB
DEL
uldnames.h
10.45 KB
DEL
ulistformatter.h
10.83 KB
DEL
uloc.h
53.16 KB
DEL
ulocdata.h
11.26 KB
DEL
umachine.h
14.54 KB
DEL
umisc.h
1.33 KB
DEL
umsg.h
24.23 KB
DEL
umutablecptrie.h
8.24 KB
DEL
unifilt.h
3.96 KB
DEL
unifunct.h
4.04 KB
DEL
unimatch.h
6.1 KB
DEL
unirepl.h
3.38 KB
DEL
uniset.h
64.9 KB
DEL
unistr.h
170.43 KB
DEL
unorm.h
20.52 KB
DEL
unorm2.h
24.66 KB
DEL
unum.h
53.46 KB
DEL
unumberformatter.h
25.22 KB
DEL
unumsys.h
7.21 KB
DEL
uobject.h
10.68 KB
DEL
upluralrules.h
7.83 KB
DEL
uregex.h
72.05 KB
DEL
uregion.h
9.84 KB
DEL
ureldatefmt.h
17 KB
DEL
urename.h
131.3 KB
DEL
urep.h
5.38 KB
DEL
ures.h
36.54 KB
DEL
uscript.h
27.21 KB
DEL
usearch.h
38.12 KB
DEL
uset.h
40 KB
DEL
usetiter.h
9.55 KB
DEL
ushape.h
18 KB
DEL
uspoof.h
65.9 KB
DEL
usprep.h
8.14 KB
DEL
ustdio.h
38.54 KB
DEL
ustream.h
1.89 KB
DEL
ustring.h
72.47 KB
DEL
ustringtrie.h
3.15 KB
DEL
utext.h
58.13 KB
DEL
utf.h
7.86 KB
DEL
utf16.h
23.32 KB
DEL
utf32.h
763 B
DEL
utf8.h
30.96 KB
DEL
utf_old.h
45.83 KB
DEL
utmscale.h
13.78 KB
DEL
utrace.h
17.29 KB
DEL
utrans.h
25.52 KB
DEL
utypes.h
30.74 KB
DEL
uvernum.h
6.67 KB
DEL
uversion.h
6 KB
DEL
vtzone.h
20.3 KB
DEL
Edit: usetiter.h
// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (c) 2002-2014, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** */ #ifndef USETITER_H #define USETITER_H #include "unicode/utypes.h" #if U_SHOW_CPLUSPLUS_API #include "unicode/uobject.h" #include "unicode/unistr.h" /** * \file * \brief C++ API: UnicodeSetIterator iterates over the contents of a UnicodeSet. */ U_NAMESPACE_BEGIN class UnicodeSet; class UnicodeString; /** * * UnicodeSetIterator iterates over the contents of a UnicodeSet. It * iterates over either code points or code point ranges. After all * code points or ranges have been returned, it returns the * multicharacter strings of the UnicodeSet, if any. * * This class is not intended to be subclassed. Consider any fields * or methods declared as "protected" to be private. The use of * protected in this class is an artifact of history. * * <p>To iterate over code points and strings, use a loop like this: * <pre> * UnicodeSetIterator it(set); * while (it.next()) { * processItem(it.getString()); * } * </pre> * <p>Each item in the set is accessed as a string. Set elements * consisting of single code points are returned as strings containing * just the one code point. * * <p>To iterate over code point ranges, instead of individual code points, * use a loop like this: * <pre> * UnicodeSetIterator it(set); * while (it.nextRange()) { * if (it.isString()) { * processString(it.getString()); * } else { * processCodepointRange(it.getCodepoint(), it.getCodepointEnd()); * } * } * </pre> * @author M. Davis * @stable ICU 2.4 */ class U_COMMON_API UnicodeSetIterator : public UObject { protected: /** * Value of <tt>codepoint</tt> if the iterator points to a string. * If <tt>codepoint == IS_STRING</tt>, then examine * <tt>string</tt> for the current iteration result. * @stable ICU 2.4 */ enum { IS_STRING = -1 }; /** * Current code point, or the special value <tt>IS_STRING</tt>, if * the iterator points to a string. * @stable ICU 2.4 */ UChar32 codepoint; /** * When iterating over ranges using <tt>nextRange()</tt>, * <tt>codepointEnd</tt> contains the inclusive end of the * iteration range, if <tt>codepoint != IS_STRING</tt>. If * iterating over code points using <tt>next()</tt>, or if * <tt>codepoint == IS_STRING</tt>, then the value of * <tt>codepointEnd</tt> is undefined. * @stable ICU 2.4 */ UChar32 codepointEnd; /** * If <tt>codepoint == IS_STRING</tt>, then <tt>string</tt> points * to the current string. If <tt>codepoint != IS_STRING</tt>, the * value of <tt>string</tt> is undefined. * @stable ICU 2.4 */ const UnicodeString* string; public: /** * Create an iterator over the given set. The iterator is valid * only so long as <tt>set</tt> is valid. * @param set set to iterate over * @stable ICU 2.4 */ UnicodeSetIterator(const UnicodeSet& set); /** * Create an iterator over nothing. <tt>next()</tt> and * <tt>nextRange()</tt> return false. This is a convenience * constructor allowing the target to be set later. * @stable ICU 2.4 */ UnicodeSetIterator(); /** * Destructor. * @stable ICU 2.4 */ virtual ~UnicodeSetIterator(); /** * Returns true if the current element is a string. If so, the * caller can retrieve it with <tt>getString()</tt>. If this * method returns false, the current element is a code point or * code point range, depending on whether <tt>next()</tt> or * <tt>nextRange()</tt> was called. * Elements of types string and codepoint can both be retrieved * with the function <tt>getString()</tt>. * Elements of type codepoint can also be retrieved with * <tt>getCodepoint()</tt>. * For ranges, <tt>getCodepoint()</tt> returns the starting codepoint * of the range, and <tt>getCodepointEnd()</tt> returns the end * of the range. * @stable ICU 2.4 */ inline UBool isString() const; /** * Returns the current code point, if <tt>isString()</tt> returned * false. Otherwise returns an undefined result. * @stable ICU 2.4 */ inline UChar32 getCodepoint() const; /** * Returns the end of the current code point range, if * <tt>isString()</tt> returned false and <tt>nextRange()</tt> was * called. Otherwise returns an undefined result. * @stable ICU 2.4 */ inline UChar32 getCodepointEnd() const; /** * Returns the current string, if <tt>isString()</tt> returned * true. If the current iteration item is a code point, a UnicodeString * containing that single code point is returned. * * Ownership of the returned string remains with the iterator. * The string is guaranteed to remain valid only until the iterator is * advanced to the next item, or until the iterator is deleted. * * @stable ICU 2.4 */ const UnicodeString& getString(); /** * Advances the iteration position to the next element in the set, * which can be either a single code point or a string. * If there are no more elements in the set, return false. * * <p> * If <tt>isString() == TRUE</tt>, the value is a * string, otherwise the value is a * single code point. Elements of either type can be retrieved * with the function <tt>getString()</tt>, while elements of * consisting of a single code point can be retrieved with * <tt>getCodepoint()</tt> * * <p>The order of iteration is all code points in sorted order, * followed by all strings sorted order. Do not mix * calls to <tt>next()</tt> and <tt>nextRange()</tt> without * calling <tt>reset()</tt> between them. The results of doing so * are undefined. * * @return true if there was another element in the set. * @stable ICU 2.4 */ UBool next(); /** * Returns the next element in the set, either a code point range * or a string. If there are no more elements in the set, return * false. If <tt>isString() == TRUE</tt>, the value is a * string and can be accessed with <tt>getString()</tt>. Otherwise the value is a * range of one or more code points from <tt>getCodepoint()</tt> to * <tt>getCodepointeEnd()</tt> inclusive. * * <p>The order of iteration is all code points ranges in sorted * order, followed by all strings sorted order. Ranges are * disjoint and non-contiguous. The value returned from <tt>getString()</tt> * is undefined unless <tt>isString() == TRUE</tt>. Do not mix calls to * <tt>next()</tt> and <tt>nextRange()</tt> without calling * <tt>reset()</tt> between them. The results of doing so are * undefined. * * @return true if there was another element in the set. * @stable ICU 2.4 */ UBool nextRange(); /** * Sets this iterator to visit the elements of the given set and * resets it to the start of that set. The iterator is valid only * so long as <tt>set</tt> is valid. * @param set the set to iterate over. * @stable ICU 2.4 */ void reset(const UnicodeSet& set); /** * Resets this iterator to the start of the set. * @stable ICU 2.4 */ void reset(); /** * ICU "poor man's RTTI", returns a UClassID for this class. * * @stable ICU 2.4 */ static UClassID U_EXPORT2 getStaticClassID(); /** * ICU "poor man's RTTI", returns a UClassID for the actual class. * * @stable ICU 2.4 */ virtual UClassID getDynamicClassID() const; // ======================= PRIVATES =========================== protected: // endElement and nextElements are really UChar32's, but we keep // them as signed int32_t's so we can do comparisons with // endElement set to -1. Leave them as int32_t's. /** The set * @stable ICU 2.4 */ const UnicodeSet* set; /** End range * @stable ICU 2.4 */ int32_t endRange; /** Range * @stable ICU 2.4 */ int32_t range; /** End element * @stable ICU 2.4 */ int32_t endElement; /** Next element * @stable ICU 2.4 */ int32_t nextElement; //UBool abbreviated; /** Next string * @stable ICU 2.4 */ int32_t nextString; /** String count * @stable ICU 2.4 */ int32_t stringCount; /** * Points to the string to use when the caller asks for a * string and the current iteration item is a code point, not a string. * @internal */ UnicodeString *cpString; /** Copy constructor. Disallowed. * @stable ICU 2.4 */ UnicodeSetIterator(const UnicodeSetIterator&); // disallow /** Assignment operator. Disallowed. * @stable ICU 2.4 */ UnicodeSetIterator& operator=(const UnicodeSetIterator&); // disallow /** Load range * @stable ICU 2.4 */ virtual void loadRange(int32_t range); }; inline UBool UnicodeSetIterator::isString() const { return codepoint == (UChar32)IS_STRING; } inline UChar32 UnicodeSetIterator::getCodepoint() const { return codepoint; } inline UChar32 UnicodeSetIterator::getCodepointEnd() const { return codepointEnd; } U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ #endif
SAVE FILE
TERMINAL
EXEC