Namensräume
Varianten
Aktionen

C++ Standardbibliotheks-Erweiterungen, Version 2

Von cppreference.com
 
 
Experimentell
Technische Spezifikation
Dateisystembibliothek (Filesystem TS)
Grundlagen der Bibliothek (Library Fundamentals TS)
Bibliotheksgrundlagen 2 (Bibliotheksgrundlagen 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 2 der C++-Erweiterungen für Bibliotheksgrundlagen, ISO/IEC TS 19568:2017, definiert zusätzlich zu den in Version 1 definierten Komponenten die folgenden neuen Komponenten.

Inhalt

[bearbeiten] Das C++-Erkennungs-Idiom

Definiert im Header <experimental/type_traits>
Alias-Templates, die erkennen, ob ein Template-Aufruf wohlgeformt ist.
(Alias-Template)
Klasse, die von detected_t im Fehlerfall zurückgegeben wird
(Klasse)

[bearbeiten] Ein const-weiterleitender Wrapper für zeigerähnliche Objekte

Definiert im Header <experimental/propagate_const>
Ein const-weiterleitender Wrapper für zeigerähnliche Objekte
(Klassentemplate)

[bearbeiten] Nicht-besitzende Zeiger

Definiert im Header <experimental/memory>
Eine Klasse, die einen nicht-besitzenden Zeiger repräsentiert.
(Klassentemplate)

[bearbeiten] Erstellung von std::array

Definiert im Header <experimental/array>
(Library Fundamentals TS v2)
Erzeugt ein std::array-Objekt, dessen Größe und optional Elementtyp aus den Argumenten abgeleitet werden.
(Funktionstemplate) [bearbeiten]

[bearbeiten] ostream_joiner

Definiert im Header <experimental/iterator>
Ein Ausgabestrom-Iterator, der aufeinanderfolgende Elemente in einen Ausgabestrom schreibt und benachbarte Elemente mit einem Trennzeichen trennt.
(Klassentemplate)

[bearbeiten] Einfache Zufallszahlengenerierungs-Einrichtungen

Eine pro-Thread-Engine vom Typ std::default_random_engine, die in einem unvorhersehbaren Zustand initialisiert ist, wird für jeden Thread unterhalten und von den unten aufgeführten Funktionen verwendet.

Definiert im Header <experimental/random>
Generiert eine Zufallszahl im angegebenen Bereich.
(Funktionstemplate) [bearbeiten]
Setzt die pro-Thread-Zufalls-Engine zurück.
(Funktion) [bearbeiten]
Definiert im Header <experimental/algorithm>
Wählt n zufällige Elemente aus einer Sequenz aus.
(function template)
Ordnet Elemente in einem Bereich zufällig neu an
(function template)

[bearbeiten] Feature-Test-Makros

Definiert im Header <experimental/type_traits>
__cpp_lib_experimental_logical_traits
Ein Wert von mindestens 201511 zeigt an, dass die logischen Operator-Typmerkmale unterstützt werden.
(Makro-Konstante)
__cpp_lib_experimental_detect
Ein Wert von mindestens 201505 zeigt an, dass das Erkennungs-Idiom unterstützt wird.
(Makro-Konstante)
Definiert im Header <experimental/propagate_const>
__cpp_lib_experimental_propagate_const
Ein Wert von mindestens 201505 zeigt an, dass propagate_const unterstützt wird.
(Makro-Konstante)
Definiert im Header <experimental/functional>
__cpp_lib_experimental_not_fn
Ein Wert von mindestens 201406 zeigt an, dass not_fn unterstützt wird.
(Makro-Konstante)
Definiert im Header <experimental/memory>
__cpp_lib_experimental_observer_ptr
Ein Wert von mindestens 201411 zeigt an, dass observer_ptr unterstützt wird.
(Makro-Konstante)
Definiert im Header <experimental/array>
__cpp_lib_experimental_make_array
Ein Wert von mindestens 201505 zeigt an, dass make_array unterstützt wird.
(Makro-Konstante)
Definiert im Header <experimental/iterator>
__cpp_lib_experimental_ostream_joiner
Ein Wert von mindestens 201411 zeigt an, dass ostream_joiner unterstützt wird.
(Makro-Konstante)
Definiert im Header <experimental/vector>
__cpp_lib_experimental_erase_if
Ein Wert von mindestens 201411 zeigt an, dass einheitliches Container-Löschen unterstützt wird.
(Makro-Konstante)
Definiert im Header <experimental/numeric>
__cpp_lib_experimental_gcd_lcm
Ein Wert von mindestens 201411 zeigt an, dass gcd und lcm unterstützt werden.
(Makro-Konstante)
Definiert im Header <experimental/random>
__cpp_lib_experimental_randint
Ein Wert von mindestens 201511 zeigt an, dass randint und zugehörige Funktionen unterstützt werden.
(Makro-Konstante)
Definiert im Header <experimental/source_location>
__cpp_lib_experimental_source_location
Ein Wert von mindestens 201505 zeigt an, dass source_location unterstützt wird.
(Makro-Konstante)

[bearbeiten] In C++17 übernommen

Die folgenden Komponenten der Bibliotheksgrundlagen v2 wurden in den C++17-Standard übernommen.

Definiert im Header <experimental/type_traits>
Variadisches Alias-Template für void
(Alias-Template)
Definiert im Header <experimental/type_traits>
variadische logische AND-Metafunktion
(Klassentemplate)
variadische logische OR-Metafunktion
(Klassentemplate)
logische NOT-Metafunktion
(Klassentemplate)
Definiert im Header <experimental/functional>
erstellt ein Funktions-Objekt, das das Komplement des Ergebnisses des gehaltenen Funktions-Objekts zurückgibt
(Funktionstemplate) [bearbeiten]
Definiert im Header <experimental/numeric>
constexpr Funktionstemplate, das den größten gemeinsamen Teiler zweier ganzen Zahlen zurückgibt.
(Funktionstemplate) [bearbeiten]
constexpr Funktionstemplate, das das kleinste gemeinsame Vielfache zweier ganzen Zahlen zurückgibt.
(Funktionstemplate) [bearbeiten]

[bearbeiten] In C++20 übernommen

Die folgenden Komponenten der Bibliotheksgrundlagen v2 wurden in den C++20-Standard übernommen.

[bearbeiten] Einheitliches Container-Löschen

Definiert im Header <experimental/string>
Löscht alle Elemente, die einem bestimmten Wert in einem std::basic_string entsprechen.
(function template)
Löscht alle Elemente, die ein Prädikat in einem std::basic_string erfüllen.
(function template)
Definiert im Header <experimental/deque>
Löscht alle Elemente, die einem bestimmten Wert in einem std::deque entsprechen.
(function template)
Löscht alle Elemente, die ein Prädikat in einem std::deque erfüllen.
(function template)
Definiert im Header <experimental/vector>
Löscht alle Elemente, die einem bestimmten Wert in einem std::vector entsprechen.
(function template)
Löscht alle Elemente, die ein Prädikat in einem std::vector erfüllen.
(function template)
Definiert im Header <experimental/forward_list>
Löscht alle Elemente, die einem bestimmten Wert in einer std::forward_list entsprechen.
(function template)
Löscht alle Elemente, die ein Prädikat in einer std::forward_list erfüllen.
(function template)
Definiert im Header <experimental/list>
Löscht alle Elemente, die einem bestimmten Wert in einer std::list entsprechen.
(function template)
Löscht alle Elemente, die ein Prädikat in einer std::list erfüllen.
(function template)
Definiert im Header <experimental/map>
Löscht alle Elemente, die ein Prädikat in einer std::map erfüllen.
(function template)
Löscht alle Elemente, die ein Prädikat in einer std::multimap erfüllen.
(function template)
Definiert im Header <experimental/set>
Löscht alle Elemente, die ein Prädikat in einer std::set erfüllen.
(function template)
Löscht alle Elemente, die ein Prädikat in einer std::multiset erfüllen.
(function template)
Definiert im Header <experimental/unordered_map>
Löscht alle Elemente, die ein Prädikat in einer std::unordered_map erfüllen.
(function template)
Löscht alle Elemente, die ein Prädikat in einer std::unordered_multimap erfüllen.
(function template)
Definiert im Header <experimental/unordered_set>
Löscht alle Elemente, die ein Prädikat in einer std::unordered_set erfüllen.
(function template)
Löscht alle Elemente, die ein Prädikat in einer std::unordered_multiset erfüllen.
(function template)

[bearbeiten] Erfassung von Quellcode-Informationen

Definiert im Header <experimental/source_location>
eine Klasse, die Informationen über den Quellcode darstellt, wie z. B. Dateinamen, Zeilennummern und Funktionsnamen
(Klasse)

[bearbeiten] Konvertierung von std::array

Definiert im Header <experimental/array>
Erzeugt ein std::array-Objekt aus einem eingebetteten Array.
(Funktionstemplate) [bearbeiten]