Namensräume
Varianten
Aktionen

C++-Standardbibliotheks-Erweiterungen

Von cppreference.com
 
 
Experimentell
Technische Spezifikation
Dateisystembibliothek (Filesystem TS)
Bibliotheksgrundlagen (Library Fundamentals TS)
Grundlagen der Bibliothek 2 (Library Fundamentals TS v2)
Grundlagen der Bibliothek 3 (Library Fundamentals TS v3)
Erweiterungen für Parallelität (Parallelism TS)
Erweiterungen für Parallelität 2 (Parallelism TS v2)
Erweiterungen für Nebenläufigkeit (Concurrency TS)
Erweiterungen für Nebenläufigkeit 2 (Concurrency TS v2)
Konzepte (Concepts TS)
Bereiche (Ranges TS)
Reflektion (Reflection TS)
Mathematische Spezialfunktionen (Special Functions TR)
Experimentell Nicht-TS
Pattern Matching
Lineare Algebra
std::execution
Verträge
2D-Grafik
 
 

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) [edit]
eine nicht-thread-sichere memory_resource zur Verwaltung von Allokationen in Pools unterschiedlicher Blockgrößen
(Klasse) [edit]
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) [edit]
gibt eine statische memory_resource zurück, die keine Allokation durchführt
(Funktion) [edit]
ruft die Standard-memory_resource ab
(Funktion) [edit]
setzt die Standard-memory_resource
(Funktion) [edit]

[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] 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)

[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

Liste der Typmerkmale und anderer Klassenvorlagen, für die Variablentemplates bereitgestellt werden