Namespaces
Variants

C++ standard libraries extensions

From cppreference.net

Version 1 der C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2015 definiert die folgenden neuen Komponenten für die C++-Standardbibliothek:

Inhaltsverzeichnis

Nicht für die Aufnahme in C++17 ausgewählt

Die folgenden Komponenten von ISO/IEC TS 19568:2015 wurden nicht für die Aufnahme in C++17 ausgewählt.

Modifizierte Versionen bestehender Klassen zur Unterstützung typloser Allokatoren

Definiert im Header <experimental/functional>
eine modifizierte Version von std::function mit Unterstützung für typlose Allokatoren
(Klassentemplate)
Definiert im Header <experimental/future>
eine modifizierte Version von std::promise mit Unterstützung für typlose Allokatoren
(Klassentemplate)
eine modifizierte Version von std::packaged_task mit Unterstützung für typlose Allokatoren
(Klassentemplate)

Memory-Ressourcen-Adapter

passt einen Allocator an eine memory_resource an
(Alias-Template)

Allgemeine Hilfsprogramme

Definiert im Header <experimental/utility>
Platzhaltertyp für Typenlöschung, z.B. in Allokatoren
(Klasse)
Definiert im Header <experimental/type_traits>
leitet den impliziten Funktionstyp des aufrufbaren Objekts ab, wenn es mit den gegebenen Argumenttypen aufgerufen wird
(Klassentemplate)

Feature-Test-Makros

Definiert in Header <experimental/optional>
__cpp_lib_experimental_optional
ein Wert von mindestens 201411 zeigt an, dass der optional-Typ unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/any>
__cpp_lib_experimental_any
ein Wert von mindestens 201411 zeigt an, dass der any-Typ unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/string_view>
__cpp_lib_experimental_string_view
ein Wert von mindestens 201411 zeigt an, dass das basic_string_view-Template unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/tuple>
__cpp_lib_experimental_apply
ein Wert von mindestens 201402 zeigt an, dass die tuple apply()-Funktion unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/type_traits>
__cpp_lib_experimental_type_trait_variable_templates
ein Wert von mindestens 201402 zeigt an, dass Variablen-Template-Typmerkmale unterstützt werden
(Makrokonstante)
__cpp_lib_experimental_invocation_type
ein Wert von mindestens 201406 zeigt an, dass Aufruf-Typmerkmale unterstützt werden
(Makrokonstante)
Definiert in Header <experimental/functional>
__cpp_lib_experimental_boyer_moore_searching
ein Wert von mindestens 201411 zeigt an, dass zusätzliche Suchalgorithmen unterstützt werden
(Makrokonstante)
__cpp_lib_experimental_function_erased_allocator
ein Wert von mindestens 201406 zeigt an, dass typerasure-Allokator für std::function unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/future>
__cpp_lib_experimental_promise_erased_allocator
ein Wert von mindestens 201406 zeigt an, dass typerasure-Allokator für std::promise unterstützt wird
(Makrokonstante)
__cpp_lib_experimental_packaged_task_erased_allocator
ein Wert von mindestens 201406 zeigt an, dass typerasure-Allokator für std::packaged_task unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/memory>
__cpp_lib_experimental_shared_ptr_arrays
ein Wert von mindestens 201406 zeigt an, dass shared_ptr-Arrays unterstützt werden
(Makrokonstante)
__cpp_lib_experimental_memory_resources
ein Wert von mindestens 201402 zeigt an, dass polymorphe Speicherressourcen unterstützt werden
(Makrokonstante)
Definiert in Header <experimental/algorithm>
__cpp_lib_experimental_sample
ein Wert von 201402 zeigt an, dass der sample-Algorithmus unterstützt wird
(Makrokonstante)

In C++17 übernommen

Die folgenden Komponenten von ISO/IEC TS 19568:2015 wurden in C++17 aufgenommen.

optionale Objekte

Definiert im Header <experimental/optional>
eine Klassentemplate, das optionale Objekte repräsentiert
(Klassentemplate)

Klasse any

Definiert im Header <experimental/any>
Ein typsicherer Container für einzelne Werte beliebigen Typs
(Klasse)

string_view

Definiert im Header <experimental/string_view>
eine nicht-besitzende Referenz auf einen String
(Klassentemplate)

Typgelöschte und polymorphe Allokatoren

Polymorphe Allokatoren und Speicherressourcen

Die Entitäten in diesem Abschnitt sind im std::experimental::pmr Namespace deklariert.

Eine abstrakte Schnittstelle für Klassen, die Speicherressourcen kapseln
(Klasse)
Ein threadsicherer memory_resource zur Verwaltung von Allokationen in Pools mit verschiedenen Blockgrößen
(Klasse)
Ein nicht-threadsicherer memory_resource zur Verwaltung von Allokationen in Pools mit verschiedenen Blockgrößen
(Klasse)
Ein spezieller memory_resource , der den allokierten Speicher nur freigibt, wenn die Ressource zerstört wird
(Klasse)
Ein Allokator, der Laufzeitpolymorphie basierend auf dem memory_resource unterstützt, mit dem er erstellt wurde
(Klassentemplate)
Gibt eine statische, programmweite memory_resource zurück, die den globalen operator new und operator delete zur Speicherallokation und -freigabe verwendet
(Funktion)
Gibt eine statische memory_resource zurück, die keine Allokation durchführt
(Funktion)
Ruft die Standard- memory_resource ab
(Funktion)
Setzt die Standard- memory_resource
(Funktion)

Bequemlichkeits-Aliase für Container mit polymorphen Allokatoren

Bequeme Aliase und Alias-Templates für Container mit polymorphen Allokatoren werden im std::experimental::pmr Namespace für die folgenden Klassentemplates in der Standardbibliothek bereitgestellt:

Liste der Containervorlagen, für die praktische Aliasse bereitgestellt werden

Array-Unterstützung für shared_ptr

Definiert im Header <experimental/memory>
Klasse Beschreibung
eine modifizierte Version von std::shared_ptr die Arrays unterstützt
(Klassentemplate)
eine modifizierte Version von std::weak_ptr die Arrays unterstützt
(Klassentemplate)

Sampling- und Suchalgorithmen

Definiert im Header <experimental/algorithm>
wählt n zufällige Elemente aus einer Sequenz aus
(Funktions-Template)
wendet einen Searcher auf eine Sequenz an
(Funktions-Template)
Definiert im Header <experimental/functional>
Implementierung des Standard-C++-Bibliothekssuchalgorithmus
(Klassen-Template)
Hilfsfunktion zum Erstellen eines default_searcher
(Funktions-Template)
Boyer-Moore-Suchalgorithmus-Implementierung
(Klassen-Template)
Hilfsfunktion zum Erstellen eines boyer_moore_searcher
(Funktions-Template)
Boyer-Moore-Horspool-Suchalgorithmus-Implementierung
(Klassen-Template)
Hilfsfunktion zum Erstellen eines boyer_moore_horspool_searcher
(Funktions-Template)

Allgemeine Hilfsmittel

Definiert im Header <experimental/tuple>
ruft eine Funktion mit einem Tupel von Argumenten auf
(Funktionstemplate)

Zusätzlich bietet der TS zahlreiche constexpr Variable Templates für die folgenden Type Traits und andere Klassentemplates in der Standardbibliothek:

Liste der Typ-Traits und anderer Klassentemplates, für die Variable Templates bereitgestellt werden