Namespaces
Variants

Named Requirements

From cppreference.net
C++ named requirements

Die named requirements auf dieser Seite sind die named requirements, die im normativen Text des C++-Standards verwendet werden, um die Erwartungen der Standardbibliothek zu definieren.

Die Verantwortung, sicherzustellen, dass Bibliotheksvorlagen mit Template-Argumenten instanziiert werden, die diese Anforderungen erfüllen, liegt beim Programmierer. Unterlassen kann zu sehr komplexen Compiler-Diagnosen führen.

Einige dieser Anforderungen sind in C++20 durch das concepts Sprachfeature formalisiert.

Inhaltsverzeichnis

Grundlagen

gibt an, dass ein Objekt des Typs standardmäßig konstruiert werden kann
(Named Requirement)
spezifiziert, dass ein Objekt des Typs aus einem Rvalue konstruiert werden kann
(Named Requirement)
gibt an, dass ein Objekt des Typs aus einem Lvalue konstruiert werden kann
(Named Requirement)
spezifiziert, dass ein Objekt des Typs von einem Rvalue zugewiesen werden kann
(Named Requirement)
legt fest, dass ein Objekt des Typs von einem Lvalue zugewiesen werden kann
(Named Requirement)
spezifiziert, dass ein Objekt des Typs zerstört werden kann
(Named Requirement)

Typeigenschaften

Hinweis: Der Standard definiert keine benannten Anforderungen mit Namen, die in dieser Unterkategorie angegeben sind.
Dies sind Typkategorien, die durch die Kernsprache definiert werden. Sie sind hier nur aus Gründen der Konsistenz als benannte Anforderungen enthalten.
Objekttypen, die keine Array-Typen oder Klassen-Typen sind
(Named Requirement)
(deprecated in C++20)
POD (Plain Old Data) Typen, kompatibel mit C struct
(Named Requirement)
Objekte dieser Typen können ihre Werte beibehalten, nachdem ihre zugrundeliegenden Bytes kopiert wurden
(Named Requirement)
(C++11) (veraltet in C++26)
Objekte dieser Typen können trivial konstruiert und kopiert werden
(Named Requirement)
diese Typen sind nützlich für die Kommunikation mit Code, der in anderen Programmiersprachen geschrieben wurde
(named requirement)
Objekte dieser Typen können implizit erstellt werden, und ihre Lebensdauern können implizit begonnen werden
(Named Requirement)

Bibliotheksweit

Boolesche Operationen ( operator && , operator || , und operator ! ) haben übliche Semantik
(Named Requirement)
operator== ist eine Äquivalenzrelation
(named requirement)
operator< ist eine strikte schwache Ordnungsrelation
(named requirement)
kann mit einem unqualifizierten Nicht-Member-Funktionsaufruf swap ( ) ausgetauscht werden
(Named Requirement)
ein LegacyIterator , der auf einen Swappable -Typ dereferenziert
(Named Requirement)
ein zeigerähnlicher Typ, der einen Nullwert unterstützt
(named requirement)
(C++11)
ein FunctionObject der für unterschiedliche Eingabewerte eine geringe Wahrscheinlichkeit hat, dieselbe Ausgabe zu liefern
(named requirement)
ein Klassentyp, der Allokationsinformationen enthält
(Named Requirement)
ein Objekt, das mit der Funktionsaufruf-Syntax aufgerufen werden kann
(named requirement)
ein Typ, für den der Aufrufvorgang definiert ist
(Named Requirement)
ein FunctionObject der einen in bool konvertierbaren Wert für ein Argument zurückgibt, ohne es zu modifizieren
(Named Requirement)
ein FunctionObject , der einen in bool konvertierbaren Wert für zwei Argumente zurückgibt, ohne diese zu modifizieren
(Named Requirement)
ein BinaryPredicate der eine Ordnungsrelation definiert
(Named Requirement)

Container

Datenstruktur, die den Zugriff auf Elemente mittels Iteratoren ermöglicht
(Named Requirement)
Container mit bidirektionalen Iteratoren
(Named Requirement)
Container, der einen Allocator verwendet
(Named Requirement)
Container mit linear gespeicherten Elementen
(Named Requirement)
Container mit Elementen, die an benachbarten Speicheradressen gespeichert sind
(Named Requirement)
Container, der Elemente durch Zuordnung zu Schlüsseln speichert
(Named Requirement)
Container, der Elemente in Buckets speichert, indem er sie Schlüsseln zuordnet
(Named Requirement)
Containerelement
Element kann in nicht initialisiertem Speicher standardmäßig konstruiert werden
(Named Requirement)
Element kann in nicht initialisiertem Speicher kopierkonstruiert werden
(Named Requirement)
Element kann in nicht initialisiertem Speicher per Move-Konstruktion erstellt werden
(Named Requirement)
Element kann in nicht initialisiertem Speicher konstruiert werden
(Named Requirement)
(C++11)
Element kann mit einem Allocator zerstört werden
(Named Requirement)

Iterator

Allgemeines Konzept zum Zugriff auf Daten innerhalb einer Datenstruktur
(named requirement)
Iterator, der zum Lesen von Daten verwendet werden kann
(Named Requirement)
Iterator, der zum Schreiben von Daten verwendet werden kann
(Named Requirement)
Iterator, der zur mehrfachen Dateneingabe verwendet werden kann
(Named Requirement)
Iterator, der sowohl inkrementiert als auch dekrementiert werden kann
(Named Requirement)
Iterator, der in konstanter Zeit bewegt werden kann
(Named Requirement)
Iterator für zusammenhängend gespeicherte Elemente
(Named Requirement)
Iterator, der während der Auswertung konstanter Ausdrücke verwendet werden kann
(Named Requirement)

Stream-I/O-Funktionen

eine Stream-Eingabefunktion, die führende Leerzeichen nicht überspringt und die verarbeiteten Zeichen zählt
(Named Requirement)
eine Stream-Eingabefunktion, die führende Leerzeichen überspringt
(Named Requirement)
eine grundlegende Stream-Ausgabefunktion
(Named Requirement)
eine Stream-Ausgabefunktion, die bei Fehlern failbit setzt und eine Referenz auf den Stream zurückgibt
(Named Requirement)

Formatter

abstrahiert Formatierungsoperationen für einen gegebenen Formatierungsargumenttyp und Zeichentyp
(Named Requirement)
(C++20)
definiert Funktionen, die von der Formatierungsbibliothek verwendet werden
(Named Requirement)

Zufallszahlengenerierung

verarbeitet eine Folge von Ganzzahlen und erzeugt eine Folge von 32-Bit-Ganzzahlen ohne Vorzeichen
(Named Requirement)
gibt gleichmäßig verteilte zufällige vorzeichenlose Ganzzahlen zurück
(Named Requirement)
ein deterministischer UniformRandomBitGenerator , definiert durch den Seed
(Named Requirement)
ein RandomNumberEngine , der die Ausgabe eines anderen RandomNumberEngine transformiert
(Named Requirement)
gibt Zufallszahlen zurück, die gemäß einer gegebenen mathematischen Wahrscheinlichkeitsdichtefunktion verteilt sind
(Named Requirement)

Nebenläufigkeit

bietet exklusive Besitzsemantik für Ausführungsagenten (d.h. Threads)
(Named Requirement)
(C++11)
ein BasicLockable , das versuchten Sperrerwerb unterstützt
(Named Requirement)
ein Lockable das zeitgesteuerte Sperren unterstützt
(Named Requirement)
bietet gemeinsame Besitzsemantik für Ausführungsagenten (d.h. Threads)
(Named Requirement)
ein SharedLockable , das zeitgesteuerte Sperren-Akquisition unterstützt
(Named Requirement)
(C++11)
ein Lockable das vor Datenrennen und sequentiell konsistenter Synchronisierung schützt
(Named Requirement)
(C++11)
ein TimedLockable das vor Datenrennen schützt und sequenziell konsistente Synchronisation bietet
(Named Requirement)
ein Mutex der Shared Ownership-Semantiken unterstützt
(Named Requirement)
ein TimedMutex der Shared-Ownership-Semantik unterstützt
(Named Requirement)

Ranges

ein FunctionObject , das aus einem viewable_range und zusätzlichen Argumenten einen Bereichsadapter erzeugt
(benannte Anforderung)
ein FunctionObject , das den Pipe-Operator unterstützt
(Named Requirement)

Mehrdimensionale Ansichtsanpassung

steuert die Abbildung des mehrdimensionalen Index in mdspan
(Named Requirement)
eine Policy, die die LayoutMapping Anforderungen erfüllt
(Named Requirement)
eine Policy, die den Zugriff auf Daten-Handles in mdspan steuert
(Named Requirement)

Sonstiges

beschreibt eine Eigenschaft eines Typs
(Named Requirement)
beschreibt eine Beziehung zwischen zwei Typen
(Named Requirement)
modifiziert eine Eigenschaft eines Typs
(Named Requirement)
(C++11)
fasst eine Dauer, einen Zeitpunkt und eine Funktion zur Ermittlung des aktuellen Zeitpunkts zusammen
(Named Requirement)
ein Clock , der keine Ausnahmen wirft
(Named Requirement)
definiert Typen und Funktionen für einen Zeichentyp
(Named Requirement)
Bitset, Ganzzahl oder Aufzählung
(Named Requirement)
ein Typ, bei dem die Initialisierung effektiv gleich der Zuweisung ist
(named requirement)
definiert Typen und Funktionen, die von der Regular Expressions-Bibliothek verwendet werden
(Named Requirement)
ein Typ mit constexpr-Konstruktor
(Named Requirement)