This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The First and Last selector functions return a value that depends on whether this is complete or partial iteration. For complete iteration, the selector function returns the logical beginning of the entire sequence of items in the container. (To be specific, Container.First for a forward iterator, and Container.Last for a reverse iterator.) For partial iteration, the selector function returns the start position value specified when the iterator object was constructed (in this case, both First and Last return the same value). The Next and Previous iterator operations vet the cursor parameter to ensure that it designates a node in the same container as the iterator. The function then forwards to the call to the analogous cursor-based operation. Iterate constructs an iterator object whose state indicates whether this is complete or partial iteration. There was also change in the semantics of the partial iterator (per the ARG meeting in Denver on 2011/11): if the start position equals No_Element, then it raises Constraint_Error; otherwise, it constructs an iterator object to indicate the position from which the iteration begins (which is in turn used by the selector functions First and Last). Tested on x86_64-pc-linux-gnu, committed on trunk 2011-12-12 Matthew Heaney <heaney@adacore.com> * a-convec.adb, a-coinve.adb, a-cobove.adb (Iterator): Use subtype Index_Type'Base for Index component (Finalize): Remove unnecessary access check (First, Last): Cursor return value depends on iterator index value (Iterate): Use start position as iterator index value (Next, Previous): Forward to corresponding cursor-based operation. * a-cborma.adb (Iterate): Properly initialize iterator object (with 0 as node index).
Attachment:
difs
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |