C++ standard libraries extensions, version 2
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
|
Definiert im Header
<experimental/propagate_const>
|
|
|
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) |
|
Definiert in Header
<experimental/propagate_const>
|
|
|
__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) |
|
Definiert in Header
<experimental/source_location>
|
|
|
__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
|
Definiert im Header
<experimental/source_location>
|
|
|
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) |
|