docs/Writerside/topics/iterator.h.md

changeset 1190
a7b913d5d589
parent 1146
151c057faf7c
equal deleted inserted replaced
1188:b0300de92b72 1190:a7b913d5d589
1 # Iterators 1 # Iterators
2 2
3 <warning> 3 <warning>
4 Outdated - Rewrite! 4 Outdated Section - will be updated soon!
5 </warning> 5 </warning>
6 6
7 In UCX 3 a new feature has been introduced to write own iterators, that work with the `cx_foreach` macro. 7 In UCX 3 a new feature has been introduced to write own iterators, that work with the `cx_foreach` macro.
8 In previous UCX releases there were different hard-coded foreach macros for lists and maps that were not customizable. 8 In previous UCX releases there were different hard-coded foreach macros for lists and maps that were not customizable.
9 Now, creating an iterator is as simple as creating a `CxIterator` struct and setting the fields in a meaningful way. 9 Now, creating an iterator is as simple as creating a `CxIterator` struct and setting the fields in a meaningful way.
22 The only differences are, that the `mutating` flag is `true` and the `src_handle` is not const. 22 The only differences are, that the `mutating` flag is `true` and the `src_handle` is not const.
23 On mutating iterators it is allowed to call the `cxFlagForRemoval()` function, which instructs the iterator to remove 23 On mutating iterators it is allowed to call the `cxFlagForRemoval()` function, which instructs the iterator to remove
24 the current element from the collection on the next call to `cxIteratorNext()` and clear the flag afterward. 24 the current element from the collection on the next call to `cxIteratorNext()` and clear the flag afterward.
25 If you are implementing your own iterator, it is up to you to implement this behavior. 25 If you are implementing your own iterator, it is up to you to implement this behavior.
26 26
27 <!--
27 ## Undocumented Symbols (TODO) 28 ## Undocumented Symbols (TODO)
28 ### cxIterator 29 ### cxIterator
29 ### cxIteratorPtr 30 ### cxIteratorPtr
30 ### cxMutIterator 31 ### cxMutIterator
31 ### cxMutIteratorPtr 32 ### cxMutIteratorPtr
33 -->
34
35 <seealso>
36 <category ref="apidoc">
37 <a href="https://ucx.sourceforge.io/api/iterator_8h.html">iterator.h</a>
38 </category>
39 </seealso>

mercurial