Commit graph

33166 commits

Author SHA1 Message Date
Markus Scherer
86bc5584cc ICU-23004 specific iterator_category etc 2025-03-03 15:36:38 -08:00
Markus Scherer
d73daaf77f ICU-23004 UTFIterator(p, limit) 2025-03-03 13:32:26 -08:00
Markus Scherer
8249b4e70d ICU-23004 inline iterator functions 2025-03-03 12:41:43 -08:00
Markus Scherer
9d09964598 ICU-23004 compare with U8_NEXT() 2025-03-03 12:34:55 -08:00
Markus Scherer
d7dbb554ed ICU-23004 UTFReverseIterator 2025-02-28 17:04:15 -08:00
Markus Scherer
9d90962708 ICU-23004 small bug fixes 2025-02-28 16:45:51 -08:00
Markus Scherer
d3e4264a72 ICU-23004 remove TODO: assert p != limit etc. 2025-02-28 16:06:13 -08:00
Markus Scherer
8db7b581b5 ICU-23004 generic UTF class names 2025-02-28 16:04:12 -08:00
Markus Scherer
518967ab01 ICU-23004 UTF-8 backward 2025-02-28 15:32:30 -08:00
Markus Scherer
2be45bf6f8 ICU-23004 UTF-8 forward 2025-02-28 14:50:35 -08:00
Markus Scherer
32131dc2ff ICU-23004 move all UTF-16 code into UTFImpl 2025-02-28 12:38:16 -08:00
Markus Scherer
43717e4ba6 ICU-23004 UTFImpl inc() & decAndRead() 2025-02-28 12:10:34 -08:00
Markus Scherer
77ed4ad56b ICU-23004 share inc() 2025-02-27 23:46:06 -08:00
Markus Scherer
d8703b232f ICU-23004 iterator fields with _ 2025-02-27 23:00:36 -08:00
Markus Scherer
48087ad761 ICU-23004 operator*() etc. are logically const 2025-02-27 22:51:00 -08:00
Markus Scherer
b8c764aa99 ICU-23004 single-pass: simpler state 2025-02-27 22:42:59 -08:00
Markus Scherer
07102da733 ICU-23004 no more iterator base class 2025-02-27 20:39:20 -08:00
Markus Scherer
c141a6f6b2 ICU-23004 start, limit fields with underscore 2025-02-27 20:12:27 -08:00
Markus Scherer
a136b8e13f ICU-23004 fix operator== and move Super::current to this::p_ 2025-02-27 20:04:28 -08:00
Markus Scherer
d734e731c4 ICU-23004 un-subclass simple-pass U16Iterator
and try to make operator==() compare logical positions
2025-02-26 15:15:54 -08:00
Markus Scherer
1249d84882 ICU-23004 shared substitution fn 2025-02-26 11:54:14 -08:00
Markus Scherer
b0b5ba8a7a ICU-23004 operator->() 2025-02-26 11:45:23 -08:00
Markus Scherer
dafbaef1c2 ICU-23004 template specializations for single-pass input iterators
with post-increment ++ returning a private proxy type
2025-02-25 20:48:12 -08:00
Markus Scherer
d55e38459e disable data() for single-pass input iterator 2025-02-03 19:51:03 -08:00
Markus Scherer
2443eb31fe draft ICU 78 2025-02-03 15:19:28 -08:00
Markus Scherer
d5fcd0b480 auto & notes 2025-02-03 15:18:19 -08:00
Markus Scherer
516b714cad make *iter++ efficient for single- & multi-pass
... by calling readAndInc() before copying the iterator
2025-02-03 15:08:32 -08:00
Markus Scherer
7bbae975c2 make safe iter work with single-pass UnitIter
... by storing CodeUnits in the Iterator,
and decoding in operator*() and operator--(),
together with a little state for whether a previous call
has already decoded a subsequence;
as a result, operator*() can no longer be const
2025-01-31 14:17:39 -08:00
Markus Scherer
1a47b1f36d more typedefs for test FwdIter 2025-01-27 14:32:09 -08:00
Markus Scherer
035c2c1fba validating iter based on other iter 2025-01-07 16:32:35 -08:00
Markus Scherer
5281d61f6d rename to utfiter.h, also test 2025-01-06 17:37:42 -08:00
Markus Scherer
8bea75e17b restore base dec() (oops) 2025-01-06 16:10:05 -08:00
Markus Scherer
84dc5f4619 unsafe=well-formed iterators 2025-01-06 16:05:05 -08:00
Markus Scherer
5c6e1a6a76 CodeUnits: getters / private fields 2025-01-06 15:16:35 -08:00
Markus Scherer
da93999f6d CodeUnits result will be shared with 8-bit 2025-01-06 14:56:42 -08:00
Markus Scherer
70ef2fa0d3 C enum UIllFormedBehavior will be shared with 8-bit 2025-01-06 14:48:30 -08:00
Markus Scherer
633fafafda remove non-standard iter API 2025-01-06 14:39:37 -08:00
Markus Scherer
a24b710f33 doxygen tparam 2025-01-02 16:11:26 -08:00
Markus Scherer
ca4787eeff efficient rbegin() & rend() 2025-01-02 15:54:08 -08:00
Markus Scherer
e0cf8f7a6b bidirectional 2025-01-02 14:55:05 -08:00
Markus Scherer
c156434b2c readAndInc() for all 2025-01-02 13:59:10 -08:00
Markus Scherer
bfc722e398 pre=post-inc, fused readAndInc() 2024-12-26 17:38:51 -08:00
Markus Scherer
43e99e082e experimental sample code 2024-12-26 17:24:02 -08:00
Markus Scherer
7bbeefcdd3 make it work outside of ICU 2024-12-26 17:19:08 -08:00
Markus Scherer
64ea1100ea template param: code point type 2024-12-26 12:45:17 -08:00
Markus Scherer
6851e8db32 C++ range: U16StringCodePoints 2024-12-26 12:24:04 -08:00
Markus Scherer
b381c2b569 U16IllFormedBehavior 2024-12-26 12:07:24 -08:00
Markus Scherer
7dc31d2e59 fix hdrtest 2024-12-26 11:18:07 -08:00
Markus Scherer
20f890be31 operator* read on the fly 2024-12-23 16:55:31 -08:00
Markus Scherer
1bcd5ee309 header-only 2024-12-23 14:26:16 -08:00