C++ standard libraries extensions
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) |
|
Definiert in Header
<experimental/memory_resource>
|
|
|
__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.
|
Definiert im Header
<experimental/memory_resource>
|
|
|
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 |
|---|
|
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: