std::experimental::ranges:: tagged
|
Definiert im Header
<experimental/ranges/utility>
|
||
|
template
<
class
Base,
TagSpecifier
...
Tags
>
requires sizeof...
(
Tags
)
<=
std::
tuple_size
<
Base
>
::
value
|
(ranges TS) | |
Die Klassenvorlage
tagged
erweitert einen tupelartigen Klassentyp
Base
, von dem sie öffentlich abgeleitet ist, mit einer Reihe von benannten Zugriffsfunktionen, die durch die Tagspezifizierer
Tags...
festgelegt werden. Die Tags werden in Reihenfolge angewendet: Der i-te Tagspezifizierer in
Tags...
entspricht dem i-ten Element des Tupels.
Die Tagspezifizierer in
Tags...
müssen eindeutig sein. Andernfalls ist das Verhalten undefiniert.
Es ist nicht möglich, eine Instanz von
tagged
über einen Zeiger auf eine andere Basis als
Base
zu löschen.
Inhaltsverzeichnis |
Memberfunktionen
konstruiert ein
tagged
Objekt
(öffentliche Elementfunktion) |
|
weist ein
tagged
Objekt zu
(öffentliche Elementfunktion) |
|
tauscht die Inhalte zweier
tagged
Objekte
(öffentliche Elementfunktion) |
Benannte Elementzugriffsfunktionen
Für den
N
-ten Tag-Spezifizierer in
Tags...
, dessen entsprechendes Element
name
heißt,
tagged
bietet Zugriffsfunktionen namens
name
wie folgt:
constexpr decltype(auto) name() & { return std::get<N>(*this); } constexpr decltype(auto) name() const & { return std::get<N>(*this); } constexpr decltype(auto) name() && { return std::get<N>(std::move(*this)); }
Nicht-Member-Funktionen
spezialisiert
swap
für
tagged
Objekte
(Funktion) |
Tupel-ähnlicher Zugriff
ermittelt die Größe eines
tagged
(Klassen-Template-Spezialisierung) |
|
ermittelt die Typen der Elemente eines
tagged
(Klassen-Template-Spezialisierung) |
Siehe auch
|
spezifiziert, dass ein Typ ein Tag-Spezifizierer ist
(Konzept) |
|
|
Alias-Template für ein getaggtes
std::pair
(Alias-Template) |
|
Hilfsfunktion zur Erstellung eines
tagged_pair
(Funktions-Template) |
|
|
Alias-Template für ein getaggtes
std::tuple
(Alias-Template) |
|
Hilfsfunktion zur Erstellung eines
tagged_tuple
(Funktions-Template) |
|
|
Tag-Spezifizierer zur Verwendung mit
ranges::tagged
(Klasse) |