Files
2025-10-25 03:02:53 +03:00

9.5 KiB

[library.general]

16 Library introduction [library]

16.1 General [library.general]

1

#

This Clause describes the contents of theC++ standard library, how a well-formed C++ program makes use of the library, and how a conforming implementation may provide the entities in the library.

2

#

The following subclauses describe the method of description ([description]) and organization ([organization]) of the library.

[requirements], [support] through [exec], and [depr] specify the contents of the library, as well as library requirements and constraints on both well-formed C++ programs and conforming implementations.

3

#

Detailed specifications for each of the components in the library are in[support]–[exec], as shown in Table 23.

Table 23 — Library categories [tab:library.categories]

🔗
Clause
Category
🔗
[support]
Language support library
🔗
[concepts]
Concepts library
🔗
[diagnostics]
Diagnostics library
🔗
[mem]
Memory management library
🔗
[meta]
Metaprogramming library
🔗
[utilities]
General utilities library
🔗
[containers]
Containers library
🔗
[iterators]
Iterators library
🔗
[ranges]
Ranges library
🔗
[algorithms]
Algorithms library
🔗
[strings]
Strings library
🔗
[text]
Text processing library
🔗
[numerics]
Numerics library
🔗
[time]
Time library
🔗
[input.output]
Input/output library
🔗
[thread]
Concurrency support library
🔗
[exec]
Execution control library

4

#

The operating system interface described in ISO/IEC/IEEE 9945:2009 is hereinafter called POSIX.

5

#

The language support library ([support]) provides components that are required by certain parts of the C++ language, such as memory allocation ([expr.new], [expr.delete]) and exception processing ([except]).

6

#

The concepts library ([concepts]) describes library components that C++ programs may use to perform compile-time validation of template arguments and perform function dispatch based on properties of types.

7

#

The diagnostics library ([diagnostics]) provides a consistent framework for reporting errors in a C++ program, including predefined exception classes.

8

#

The memory management library ([mem]) provides components for memory management, including smart pointers and scoped allocators.

9

#

The metaprogramming library ([meta]) describes facilities for use in templates and during constant evaluation, including type traits, integer sequences, and rational arithmetic.

10

#

The general utilities library ([utilities]) includes components used by other library elements, such as a predefined storage allocator for dynamic storage management ([basic.stc.dynamic]), and components used as infrastructure in C++ programs, such as tuples and function wrappers.

11

#

The containers ([containers]), iterators ([iterators]), ranges ([ranges]), and algorithms ([algorithms]) libraries provide a C++ program with access to a subset of the most widely used algorithms and data structures.

12

#

The strings library ([strings]) provides support for manipulating sequences of type char, sequences of type char8_t, sequences of type char16_t, sequences of type char32_t, sequences of type wchar_t, and sequences of any other character-like type.

13

#

The text processing library ([text]) provides support for text processing, including formatting, internationalization support and regular expression matching and searching.

14

#

The numerics library provides numeric algorithms and complex number components that extend support for numeric processing.

Thevalarray component provides support forn-at-a-time processing, potentially implemented as parallel operations on platforms that support such processing.

The random number component provides facilities for generating pseudo-random numbers.

15

#

The time library ([time]) provides generally useful time utilities.

16

#

The input/output library ([input.output]) provides theiostream components that are the primary mechanism for C++ program input and output.

They can be used with other elements of the library, particularly strings, locales, and iterators.

17

#

The concurrency support library ([thread]) provides components to create and manage threads, including atomic operations, mutual exclusion, and interthread communication.

18

#

The execution control library ([exec]) provides components supporting execution of function objects.