C++ Standardbibliotheks-Erweiterungen, Version 2
Von cppreference.com
< cpp | experimental
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] 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) | |
| Setzt die pro-Thread-Zufalls-Engine zurück. (Funktion) | |
| 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) | |
| Definiert im Header
<experimental/numeric> | |
constexpr Funktionstemplate, das den größten gemeinsamen Teiler zweier ganzen Zahlen zurückgibt.(Funktionstemplate) | |
constexpr Funktionstemplate, das das kleinste gemeinsame Vielfache zweier ganzen Zahlen zurückgibt.(Funktionstemplate) | |
[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) | |