ISO/IEC TS 21425:2017 Withdrawn
Programming languages - C++ Extensions for ranges
Abstract
ISO/IEC TS 21425:2017 describes extensions to the C++ Programming Language (2) that permit operations on ranges of data. These extensions include changes and additions to the existing library facilities as well as the extension of one core language facility. In particular, changes and extensions to the Standard Library include:
- The formulation of the foundational and iterator concept requirements using the syntax of the Concepts TS (2).
- Analogues of the Standard Library algorithms specified in terms of the new concepts.
- The loosening of the algorithm constraints to permit the use of sentinels to denote the end of a range and corresponding changes to algorithm return types where necessary.
- The addition of new concepts describing range and view abstractions; that is, objects with a begin iterator and an end sentinel.
- New algorithm overloads that take range objects.
- Support of callable objects (as opposed to function objects) passed as arguments to the algorithms.
- The addition of optional projection arguments to the algorithms to permit on-the-fly data transformations.
- Analogues of the iterator primitives and new primitives in support of the addition of sentinels to the library.
- Constrained analogues of the standard iterator adaptors and stream iterators that satisfy the new iterator concepts.
- New iterator adaptors (counted_iterator and common_iterator) and sentinels (unreachable).
Changes to the core language include:
- the extension of the range-based for statement to support the new iterator range requirements (10.4).
ISO/IEC TS 21425:2017 does not specify constrained analogues of other parts of the Standard Library (e.g., the numeric algorithms), nor does it add range support to all the places that could benefit from it (e.g., the containers).
ISO/IEC TS 21425:2017 does not specify any new range views, actions, or facade or adaptor utilities; all are left as future work.
- The formulation of the foundational and iterator concept requirements using the syntax of the Concepts TS (2).
- Analogues of the Standard Library algorithms specified in terms of the new concepts.
- The loosening of the algorithm constraints to permit the use of sentinels to denote the end of a range and corresponding changes to algorithm return types where necessary.
- The addition of new concepts describing range and view abstractions; that is, objects with a begin iterator and an end sentinel.
- New algorithm overloads that take range objects.
- Support of callable objects (as opposed to function objects) passed as arguments to the algorithms.
- The addition of optional projection arguments to the algorithms to permit on-the-fly data transformations.
- Analogues of the iterator primitives and new primitives in support of the addition of sentinels to the library.
- Constrained analogues of the standard iterator adaptors and stream iterators that satisfy the new iterator concepts.
- New iterator adaptors (counted_iterator and common_iterator) and sentinels (unreachable).
Changes to the core language include:
- the extension of the range-based for statement to support the new iterator range requirements (10.4).
ISO/IEC TS 21425:2017 does not specify constrained analogues of other parts of the Standard Library (e.g., the numeric algorithms), nor does it add range support to all the places that could benefit from it (e.g., the containers).
ISO/IEC TS 21425:2017 does not specify any new range views, actions, or facade or adaptor utilities; all are left as future work.
Additional information
Publication type | Technical Specification |
---|---|
Publication date | 2017-12-07 |
Withdrawal date | 2021-06-28 |
Edition | 1.0 |
Available language(s) | English |
TC/SC | ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfacesrss |
ICS | 35.060 - Languages used in information technology |
Stability date | 2021 |
Pages | 158 |
File size | 2800 KB |
The following test report forms are related:
Share your publications
Learn how to share your publications with your colleagues, using networking options.
Payment information
Our prices are in Swiss francs (CHF). We accept all major credit cards (American Express, Mastercard and Visa, JCB and CUP), PayPal and bank transfers as form of payment.
Keep in touch
Keep up to date with new publication releases and announcements with our free IEC Just Published email newsletter.
Contact customer services
Please send your enquiry by email or call us on +41 22 919 02 11 between 09:00 – 16:00 CET Monday to Friday.