ISO/IEC DTS 19568
(Main)Programming Languages — C++ Extensions for Library Fundamentals
Programming Languages — C++ Extensions for Library Fundamentals
ISO/IEC TS 19568:2017 describes extensions to the C++ Standard Library (1.2). These extensions are classes and functions that are likely to be used widely within a program and/or on the interface boundaries between libraries written by different organizations. ISO/IEC TS 19568:2017 is non-normative. Some of the library components in this technical specification may be considered for standardization in a future version of C++, but they are not currently part of any C++ standard. Some of the components in this technical specification may never be standardized, and others may be standardized in a substantially changed form. The goal of this technical specification is to build more widespread existing practice for an expanded C++ standard library. It gives advice on extensions to those vendors who wish to provide them.
Langages de programmation — Extensions C++ pour la bibliothèque fondamentaux
General Information
Relations
Standards Content (Sample)
FINAL DRAFT
Technical
Specification
ISO/IEC DTS 19568
ISO/IEC JTC 1/SC 22
Programming Languages —
Secretariat: ANSI
C++ Extensions for Library
Voting begins on:
Fundamentals
2024-05-14
Langages de programmation — Extensions C++ pour la
Voting terminates on:
bibliothèque fondamentaux
2024-07-09
RECIPIENTS OF THIS DRAFT ARE INVITED TO SUBMIT,
WITH THEIR COMMENTS, NOTIFICATION OF ANY
RELEVANT PATENT RIGHTS OF WHICH THEY ARE AWARE
AND TO PROVIDE SUPPOR TING DOCUMENTATION.
IN ADDITION TO THEIR EVALUATION AS
BEING ACCEPTABLE FOR INDUSTRIAL, TECHNO
LOGICAL, COMMERCIAL AND USER PURPOSES, DRAFT
INTERNATIONAL STANDARDS MAY ON OCCASION HAVE
TO BE CONSIDERED IN THE LIGHT OF THEIR POTENTIAL
TO BECOME STAN DARDS TO WHICH REFERENCE MAY BE
MADE IN NATIONAL REGULATIONS.
Reference number
ISO/IEC DTS 19568:2024(en) © ISO/IEC 2024
---------------------- Page: 1 ----------------------
FINAL DRAFT
ISO/IEC DTS 19568:2024(en)
Technical
Specification
ISO/IEC DTS 19568
ISO/IEC JTC 1/SC 22
Programming Languages —
Secretariat: ANSI
C++ Extensions for Library
Voting begins on:
Fundamentals
Langages de programmation — Extensions C++ pour la
Voting terminates on:
bibliothèque fondamentaux
RECIPIENTS OF THIS DRAFT ARE INVITED TO SUBMIT,
COPYRIGHT PROTECTED DOCUMENT
WITH THEIR COMMENTS, NOTIFICATION OF ANY
RELEVANT PATENT RIGHTS OF WHICH THEY ARE AWARE
AND TO PROVIDE SUPPOR TING DOCUMENTATION.
© ISO/IEC 2024
IN ADDITION TO THEIR EVALUATION AS
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
BEING ACCEPTABLE FOR INDUSTRIAL, TECHNO
LOGICAL, COMMERCIAL AND USER PURPOSES, DRAFT
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
INTERNATIONAL STANDARDS MAY ON OCCASION HAVE
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
TO BE CONSIDERED IN THE LIGHT OF THEIR POTENTIAL
or ISO’s member body in the country of the requester.
TO BECOME STAN DARDS TO WHICH REFERENCE MAY BE
MADE IN NATIONAL REGULATIONS.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland Reference number
ISO/IEC DTS 19568:2024(en) © ISO/IEC 2024
© ISO/IEC 2024 – All rights reserved
ii
---------------------- Page: 2 ----------------------
ISO/IEC TS 19568:2024(en)
ISO/IEC TS 19568:2024
Contents
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Terms and definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 General principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1 Namespaces, headers, and modifications to standard classes . . . . . . . . . . . . 4
4.2 Feature-testing recommendations . . . . . . . . . . . . . . . . . . . . . . . . 5
5 Modifications to the C++ Standard Library . . . . . . . . . . . . . . . . 7
5.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2 Exception requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
© ISO/IEC 2024 — All rights reserved iii
© ISO/IEC 2024 – All rights reserved
iii
---------------------- Page: 3 ----------------------
ISO/IEC TS 19568:2024(en)
ISO/IEC TS 19568:2024
6 General utilities library . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1 Constness propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1.1 Header synopsis . . . . . . . . . . . . 8
6.1.2 Class template propagate_const . . . . . . . . . . . . . . . . . . . 10
6.1.2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1.2.2 General requirements on T . . . . . . . . . . . . . . . . . 12
6.1.2.3 Requirements on class type T . . . . . . . . . . . . . . . . 12
6.1.2.4 Constructors . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1.2.5 Assignment . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1.2.6 Const observers . . . . . . . . . . . . . . . . . . . . . . 14
6.1.2.7 Non-const observers . . . . . . . . . . . . . . . . . . . . 14
6.1.2.8 Modifi
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.