Namespaces
Variants

C++ standard libraries extensions, version 2

From cppreference.net

Version 2 der C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2017, definiert die folgenden neuen Komponenten für die C++ Standardbibliothek, zusätzlich zu denen, die in Version 1 definiert sind:

Inhaltsverzeichnis

Das C++-Erkennungsidiom

Definiert im Header <experimental/type_traits>
Alias-Templates, die erkennen ob eine Template-ID wohlgeformt ist
(Alias-Template)
Klassentyp, der von detected_t bei Fehlschlag zurückgegeben wird
(Klasse)

Ein const-verbreitender Wrapper für zeigerähnliche Objekte

Ein const-verbreitender Wrapper für zeigerähnliche Objekte
(Klassentemplate)

Nicht-besitzende Zeiger

Definiert im Header <experimental/memory>
eine Klasse, die einen nicht-besitzenden Zeiger repräsentiert
(Klassen-Template)

std::array Erstellung

Definiert im Header <experimental/array>
(library fundamentals TS v2)
erstellt ein std::array Objekt, dessen Größe und optionaler Elementtyp von den Argumenten abgeleitet werden
(Funktions-Template)

ostream_joiner

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

Einfache Zufallszahlengenerierungsfunktionen

Ein pro-Thread-Engine vom Typ std::default_random_engine , initialisiert in einem unvorhersehbaren Zustand, wird für jeden Thread verwaltet und von den folgenden Funktionen verwendet.

Definiert im Header <experimental/random>
erzeugt eine zufällige Ganzzahl im angegebenen Bereich
(Funktionstemplate)
initialisiert die pro-Thread-Zufallsengine neu
(Funktion)
Definiert im Header <experimental/algorithm>
wählt n zufällige Elemente aus einer Sequenz aus
(Funktionstemplate)
ordnet Elemente in einem Bereich zufällig neu
(Funktionstemplate)

Feature-Test-Makros

Definiert in Header <experimental/type_traits>
__cpp_lib_experimental_logical_traits
ein Wert von mindestens 201511 zeigt an, dass die logischen Operator-Typ-Traits unterstützt werden
(Makrokonstante)
__cpp_lib_experimental_detect
ein Wert von mindestens 201505 zeigt an, dass das Detection Idiom unterstützt wird
(Makrokonstante)
__cpp_lib_experimental_propagate_const
ein Wert von mindestens 201505 zeigt an, dass propagate_const unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/functional>
__cpp_lib_experimental_not_fn
ein Wert von mindestens 201406 zeigt an, dass not_fn unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/memory>
__cpp_lib_experimental_observer_ptr
ein Wert von mindestens 201411 zeigt an, dass observer_ptr unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/array>
__cpp_lib_experimental_make_array
ein Wert von mindestens 201505 zeigt an, dass make_array unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/iterator>
__cpp_lib_experimental_ostream_joiner
ein Wert von mindestens 201411 zeigt an, dass ostream_joiner unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/vector>
__cpp_lib_experimental_erase_if
ein Wert von mindestens 201411 zeigt an, dass die einheitliche Container-Löschung unterstützt wird
(Makrokonstante)
Definiert in Header <experimental/numeric>
__cpp_lib_experimental_gcd_lcm
ein Wert von mindestens 201411 zeigt an, dass gcd und lcm unterstützt werden
(Makrokonstante)
Definiert in Header <experimental/random>
__cpp_lib_experimental_randint
ein Wert von mindestens 201511 zeigt an, dass randint und zugehörige Funktionen unterstützt werden
(Makrokonstante)
__cpp_lib_experimental_source_location
ein Wert von mindestens 201505 zeigt an, dass source_location unterstützt wird
(Makrokonstante)

In C++17 übernommen

Die folgenden Komponenten der Library Fundamentals 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 UND-Metafunktion
(Klassen-Template)
variadische logische ODER-Metafunktion
(Klassen-Template)
logische NICHT-Metafunktion
(Klassen-Template)
Definiert im Header <experimental/functional>
erstellt ein Funktionsobjekt, das das Komplement des Ergebnisses des von ihm gehaltenen Funktionsobjekts zurückgibt
(Funktions-Template)
Definiert im Header <experimental/numeric>
constexpr Funktions-Template, das den größten gemeinsamen Teiler zweier Ganzzahlen zurückgibt
(Funktions-Template)
constexpr Funktions-Template, das das kleinste gemeinsame Vielfache zweier Ganzzahlen zurückgibt
(Funktions-Template)

In C++20 übernommen

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

Einheitliche Container-Löschung

Definiert im Header <experimental/string>
löscht alle Elemente mit einem bestimmten Wert aus einem std::basic_string
(Funktions-Template)
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::basic_string
(Funktionsschablone)
Definiert im Header <experimental/deque>
löscht alle Elemente mit einem bestimmten Wert aus einer std::deque
(Funktions-Template)
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::deque
(Funktions-Template)
Definiert im Header <experimental/vector>
löscht alle Elemente mit einem bestimmten Wert aus einem std::vector
(Funktionsschablone)
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::vector
(Funktions-Template)
Definiert im Header <experimental/forward_list>
löscht alle Elemente mit einem bestimmten Wert aus einer std::forward_list
(Funktions-Template)
löscht alle Elemente, die ein Prädikat erfüllen, aus einer std::forward_list
(Funktions-Template)
Definiert im Header <experimental/list>
löscht alle Elemente mit einem bestimmten Wert aus einer std::list
(Funktionsschablone)
löscht alle Elemente, die ein Prädikat erfüllen, aus einer std::list
(Funktions-Template)
Definiert in Header <experimental/map>
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::map
(Funktions-Template)
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::multimap
(Funktions-Template)
Definiert im Header <experimental/set>
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::set
(Funktions-Template)
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::multiset
(Funktions-Template)
Definiert im Header <experimental/unordered_map>
löscht alle Elemente, die ein Prädikat erfüllen, aus einer std::unordered_map
(Funktions-Template)
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::unordered_multimap
(Funktionsschablone)
Definiert im Header <experimental/unordered_set>
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::unordered_set
(Funktions-Template)
löscht alle Elemente, die ein Prädikat erfüllen, aus einem std::unordered_multiset
(Funktions-Template)

Erfassung von Quellcode-Informationen

eine Klasse, die Informationen über den Quellcode repräsentiert, wie Dateinamen, Zeilennummern und Funktionsnamen
(Klasse)

std::array Konvertierung

Definiert im Header <experimental/array>
erstellt ein std::array Objekt aus einem eingebauten Array
(Funktionstemplate)