Customer Service:
Mon - Fri: 8:30 am - 6 pm EST

C++

C++, created as an extension of the C language, is very commonly used for developing programs such as browsers, operating systems and more. Standards included in this category go over specifics for the programming language.


ISO/IEC TS 19216:2018

Programming Languages - C++ Extensions for Networking

ISO/IEC TS 19216:2018 describes extensions to the C++ Standard Library. This document specifies requirements for implementations of an interface that computer programs written in the C++ programming language may use to perform operations related to networking, such as operations involving sockets, timers, bu˙er management, host name resolution and internet protocols. This document is applicable to information technology systems that can perform network operations, such as those with operating systems that conform to the POSIX interface. This document is applicable only to vendors who wish to provide the interface it describes.


ISO/IEC TS 19217:2015

Information technology - Programming languages - C++ Extensions for concepts

ISO/IEC TS 19217:2015 describes extensions to the C++ Programming Language (1.2) that enable the specification and checking of constraints on template arguments, and the ability to overload functions and specialize class templates based on those constraints. These extensions include new syntactic forms and modifications to existing language semantics.

The International Standard, ISO/IEC 14882, provides important context and specification for this Technical Specification. This document is written as a set of changes against that specification. Instructions to modify or add paragraphs are written as explicit instructions. Modifications made directly to existing text from the International Standard use underlining to represent added text and strikethrough to represent deleted text.

WG21 paper N4191 defines "fold expressions", which are used to define constraint expressions resulting from the use of constrained-parameters that declare template parameter packs. This feature is not present in ISO/IEC 14882:2014, but it is planned to be included in the next revision of that International Standard. The specification of that feature is included in this document.


ISO/IEC TS 19568:2017

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.


ISO/IEC TS 19570:2018

Programming Languages - Technical Specification for C++ Extensions for Parallelism

This document describes requirements for implementations of an interface that computer programs written in the C++ programming language can use to invoke algorithms with parallel execution. The algorithms described by this document are realizable across a broad class of computer architectures.

There is a possibility of a subset of the functionality described by this document being standardized in a future version of C++, but it is not currently part of any C++ standard. There is a possibility of some of the functionality in this document never being standardized, or of it being standardized in a substantially changed form.

The goal of this document is to build widespread existing practice for parallelism in the C++ programming language. It gives advice on extensions to those vendors who wish to provide them.


ISO/IEC TS 21425:2017

Programming languages - C++ Extensions for ranges

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 transforma-

tions.

- 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.


ISO/IEC TS 21544:2018

Programming languages - Extensions to C++ for modules

This document describes extensions to the C++ Programming Language (Clause 2) that introduce modules, a functionality for designating a set of translation units by symbolic name and ability to express symbolic dependency on modules, and to define interfaces of modules. These extensions include new syntactic forms and modifications to existing language semantics.

ISO/IEC 14882 provides important context and specification for this document. This document is written as a set of changes against that specification. Instructions to modify or add paragraphs are written as explicit instructions. Modifications made directly to existing text from ISO/IEC 14882 use underlining to represent added text and strikethrough to represent deleted text.


ISO/IEC TR 19768:2007

Information technology - Programming languages - Technical Report on C++ Library Extensions

ISO/IEC TR 19768:2007 specifies a series of extensions to the standard library for the programming language C++, as specified by ISO/IEC 14882, in order to build more widespread existing practice for an expanded C++ standard library. Some of the components in ISO/IEC TR 19768:2007 could be considered for standardization in a future version of C++.

The specific classes of extensions specified in ISO/IEC TR 19768:2007 are as follows:

  • general utilities such as reference-counted pointers;
  • functional programming;
  • facilities for compile-time type queries;
  • enhanced support for numerical computation;
  • hash tables and other additional container classes;
  • regular expression processing;
  • improved capability with the programming language C, as specified by ISO/IEC 9899.


ISO/IEC TR 18015:2006

Information technology - Programming languages, their environments and system software interfaces - Technical Report on C++ Performance

The aim of ISO/IEC TR 18015 is to:

  • give the reader a model of time and space overheads implied by use of various C++ language and library features;
  • debunk widespread myths about performance problems in C++;
  • present techniques for use of C++ in applications where performance matters; and
  • present techniques for implementing C++ standard language and library facilities to yield efficient code.

The special needs of embedded systems programming are presented, including ROMability and predictability. A separate chapter presents general C and C++ interfaces to the basic hardware facilities of embedded systems.


ISO/IEC TR 24733:2011

Information technology - Programming languages, their environments and system software interfaces - Extensions for the programming language C++ to support decimal floating-point arithmetic

ISO/IEC TR 24733:2011 specifies an extension to the programming language C++, specified by ISO/IEC 14882:2003. The extension provides support for decimal floating-point arithmetic that is consistent with the specification in IEEE 754-2008.

ISO/IEC TR 24733:2011 does not consider the binary floating-point arithmetic specified in IEEE 754-2008.


ISO 10303-23:2000

Industrial automation systems and integration -- Product data representation and exchange -- Part 23: Implementation methods: C++ language binding to the standard data access interface

This part of ISO 10303 specifies the implementation of the functional interface specified in the standard data access interface (SDAI), ISO 10303-22, in the C++ programming language.

The following are within the scope of this part of ISO 10303:

  • access to and manipulation of data types and entities which are specified in ISO 10303-22;
  • convenience functions suitable to this language binding;
  • binding of functions to operations and attributes specified in ISO 10303-22 with the linking of application schema definition at either compile-time or run-time;
  • implementation mechanisms for the handling of errors as specified in ISO 10303-22;
  • implementation mechanisms for the validation of constraints as specified in ISO 10303-22.

The following is outside the scope of this part of ISO 10303:

  • all items listed as out of scope in ISO 10303-22.


ANSI Logo

As the voice of the U.S. standards and conformity assessment system, the American National Standards Institute (ANSI) empowers its members and constituents to strengthen the U.S. marketplace position in the global economy while helping to assure the safety and health of consumers and the protection of the environment.

CUSTOMER SERVICE
NEW YORK OFFICE
ANSI HEADQUARTERS