ISO/IEC TR 19768:2007
Information technology - Programming languages - Technical Report on C++ Library Extensions

Standard No.
ISO/IEC TR 19768:2007
Release Date
2007
Published By
International Organization for Standardization (ISO)
Latest
ISO/IEC TR 19768:2007
Scope
1 This Technical Report describes extensions to the C++ standard library that is described in the International Standard for the C++ programming language [14]. 2 This Technical Report is non-normative. Some of the library components in this Technical Report 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 Report may never be standardized, and others may be standardized in a substantially changed form. 3 The goal of this Technical Report 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. 1.1 Relation to C++ Standard Library Introduction [tr.description] 1 Unless otherwise specified, the whole of the ISO C++ Standard Library introduction [lib.library] is included in this Technical Report by reference. 1.2 Categories of extensions [tr.intro.ext] 1 This Technical Report describes four general categories of library extensions: 1. New requirement tables, such as the regular expression traits requirements in 7.2. These are not directly expressed as software; they specify the circumstances under which user-written components will interoperate with the components described in this Technical Report. 2. New library components (types and functions) that are declared in entirely new headers, such as the class templates in the header (6.3.4.1). 3. New library components declared as additions to existing standard headers, such as the mathematical special functions added to the headers and in 5.2.1 and 5.2.2 4. Additions to standard library components, such as the extensions to class std::pair in 6.1.4. 2 New headers are distinguished from extensions to existing headers by the title of the synopsis clause. In the first case, the title is of the form “Header synopsis”, and the synopsis includes all namespace scope declarations contained in the header. In the second case, the title is of the form “Additions to header synopsis” and the synopsis includes only the extensions, i.e. those namespace scope declarations that are not present in the C++ standard [14]. 1.3 Namespaces and headers [tr.intro.namespaces] 1 Since the extensions described in this Technical Report are not part of the C++ standard library, they should not be declared directly within namespace std. Unless otherwise specifed, all components described in this Technical Report are declared in namespace std::tr1. [Note: Some components are declared in subnamespaces of namespace std::tr1. —end note] 2 Unless otherwise specified, references to other entities described in this Technical Report are assumed to be qualified with std::tr1::, and references to entities described in the International Standard are assumed to be qualified with std::. 3 Even when an extension is specified as additions to standard headers (the third category in 1.2), vendors should not simply add declarations to standard headers in a way that would be visible to users by default. [Note: That would fail to be standard conforming, because the new names, even within a namespace, could conflict with user macros. —end note] Users should be required to take explicit action to have access to library extensions. 4 It is recommended either that additional declarations in standard headers be protected with a macro that is not defined by default, or else that all extended headers, including both new headers and parallel versions of standard headers with non-standard declarations, be placed in a separate directory that is not part of the default search path.

ISO/IEC TR 19768:2007 history

  • 2007 ISO/IEC TR 19768:2007 Information technology - Programming languages - Technical Report on C++ Library Extensions



Copyright ©2024 All Rights Reserved