C++-Standardbibliotheks-Erweiterungen
Version 1 der C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2015 definiert die folgenden neuen Komponenten für die C++-Standardbibliothek
Inhalt |
[edit] 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.
[edit] Modifizierte Versionen bestehender Klassen zur Unterstützung von typlöschungsfähigen Allokatoren
| Definiert im Header
<experimental/functional> | |
| eine modifizierte Version von std::function mit Unterstützung für typlöschungsfähige Allokatoren (Klassentemplate) | |
| Definiert im Header
<experimental/future> | |
| eine modifizierte Version von std::promise mit Unterstützung für typlöschungsfähige Allokatoren (Klassentemplate) | |
| eine modifizierte Version von std::packaged_task mit Unterstützung für typlöschungsfähige Allokatoren (Klassentemplate) | |
[edit] Speicherressourcen-Adapter
| passt einen Allokator in eine memory_resource an (Alias-Template) |
[edit] Allgemeine Hilfsmittel
| Definiert im Header
<experimental/utility> | |
| Platzhaltertyp für Typlö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) | |
[edit] Feature-Testmakros
| Definiert im Header
<experimental/optional> | |
| __cpp_lib_experimental_optional |
ein Wert von mindestens 201411 zeigt an, dass der optionale Typ unterstützt wird (Makro-Konstante) |
| Definiert im Header
<experimental/any> | |
| __cpp_lib_experimental_any |
ein Wert von mindestens 201411 zeigt an, dass der any-Typ unterstützt wird (Makro-Konstante) |
| Definiert im 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 (Makro-Konstante) |
| Definiert im Header
<experimental/tuple> | |
| __cpp_lib_experimental_apply |
ein Wert von mindestens 201402 zeigt an, dass die tuple apply()-Funktion unterstützt wird (Makro-Konstante) |
| Definiert im Header
<experimental/type_traits> | |
| __cpp_lib_experimental_type_trait_variable_templates |
ein Wert von mindestens 201402 zeigt an, dass Variablentemplates für Typmerkmale unterstützt werden (Makro-Konstante) |
| __cpp_lib_experimental_invocation_type |
ein Wert von mindestens 201406 zeigt an, dass Invocation-Type-Merkmale unterstützt werden (Makro-Konstante) |
| Definiert im Header
<experimental/functional> | |
| __cpp_lib_experimental_boyer_moore_searching |
ein Wert von mindestens 201411 zeigt an, dass zusätzliche Suchalgorithmen unterstützt werden (Makro-Konstante) |
| __cpp_lib_experimental_function_erased_allocator |
ein Wert von mindestens 201406 zeigt an, dass typlöschungsfähige Allokatoren für std::function unterstützt werden (Makro-Konstante) |
| Definiert im Header
<experimental/future> | |
| __cpp_lib_experimental_promise_erased_allocator |
ein Wert von mindestens 201406 zeigt an, dass typlöschungsfähige Allokatoren für std::promise unterstützt werden (Makro-Konstante) |
| __cpp_lib_experimental_packaged_task_erased_allocator |
ein Wert von mindestens 201406 zeigt an, dass typlöschungsfähige Allokatoren für std::packaged_task unterstützt werden (Makro-Konstante) |
| Definiert im Header
<experimental/memory> | |
| __cpp_lib_experimental_shared_ptr_arrays |
ein Wert von mindestens 201406 zeigt an, dass shared_ptr-Arrays unterstützt werden (Makro-Konstante) |
| Definiert im Header
<experimental/memory_resource> | |
| __cpp_lib_experimental_memory_resources |
ein Wert von mindestens 201402 zeigt an, dass polymorphe Speicherressourcen unterstützt werden (Makro-Konstante) |
| Definiert im Header
<experimental/algorithm> | |
| __cpp_lib_experimental_sample |
ein Wert von 201402 zeigt an, dass der sample-Algorithmus unterstützt wird (Makro-Konstante) |
[edit] In C++17 integriert
Die folgenden Komponenten von ISO/IEC TS 19568:2015 wurden in C++17 integriert.
[edit] Optionale Objekte
| Definiert im Header
<experimental/optional> | |
| eine Klassenvorlage, die *optionale Objekte* darstellt (Klassentemplate) | |
[edit] Klasse any
| Definiert im Header
<experimental/any> | |
| ein typsicheres Container für einzelne Werte beliebigen Typs (Klasse) | |
[edit] string_view
| Definiert im Header
<experimental/string_view> | |
| eine nicht-besitzende Referenz auf einen String (Klassentemplate) | |
[edit] Typlöschungsfähige und polymorphe Allokatoren
[edit] Polymorphe Allokatoren und Speicherressourcen
Die Entitäten in diesem Abschnitt sind im Namespace std::experimental::pmr deklariert.
| Definiert im Header
<experimental/memory_resource> | |
| eine abstrakte Schnittstelle für Klassen, die Speicherressourcen kapseln (Klasse) | |
| eine thread-sichere memory_resource zur Verwaltung von Allokationen in Pools unterschiedlicher Blockgrößen (Klasse) | |
| eine nicht-thread-sichere memory_resource zur Verwaltung von Allokationen in Pools unterschiedlicher Blockgrößen (Klasse) | |
| eine spezielle memory_resource, die den allokierten Speicher erst freigibt, wenn die Ressource zerstört wird (Klasse) | |
| ein Allokator, der Laufzeitpolymorphismus basierend auf der memory_resource unterstützt, mit der er konstruiert wird (Klassentemplate) | |
gibt eine statische, programmeinheitliche memory_resource zurück, die den globalen operator new und operator delete zur Allokation und Deallokation von Speicher 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) | |
[edit] Bequeme Aliase für Container, die polymorphe Allokatoren verwenden
Bequeme Aliase und Alias-Templates für Container, die polymorphe Allokatoren verwenden, werden im Namespace std::experimental::pmr für die folgenden Klassenvorlagen in der Standardbibliothek bereitgestellt
| Liste der Container-Templates, für die bequeme Aliase bereitgestellt werden |
|---|
[edit]
| 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) | |
[edit] Stichproben- und Suchalgorithmen
| Definiert im Header
<experimental/algorithm> | |
| wählt n zufällige Elemente aus einer Sequenz aus (function template) | |
| wendet einen Searcher auf eine Sequenz an (function template) | |
| Definiert im Header
<experimental/functional> | |
| Implementierung des standardmäßigen C++-Bibliotheks-Suchalgorithmus (Klassentemplate) | |
| Hilfsfunktion zum Erstellen eines default_searcher (function template) | |
| Implementierung des Boyer-Moore-Suchalgorithmus (Klassentemplate) | |
| Hilfsfunktion zum Erstellen eines boyer_moore_searcher (function template) | |
| Implementierung des Boyer-Moore-Horspool-Suchalgorithmus (Klassentemplate) | |
| Hilfsfunktion zum Erstellen eines boyer_moore_horspool_searcher (function template) | |
[edit] Allgemeine Hilfsmittel
| Definiert im Header
<experimental/tuple> | |
| ruft eine Funktion mit einem Tupel von Argumenten auf (function template) | |
Zusätzlich bietet die TS zahlreiche constexpr Variablentemplates für die folgenden Typmerkmale und andere Klassenvorlagen in der Standardbibliothek