std::experimental::ranges:: tagged
|
Défini dans l'en-tête
<experimental/ranges/utility>
|
||
|
template
<
class
Base,
TagSpecifier
...
Tags
>
requires sizeof...
(
Tags
)
<=
std::
tuple_size
<
Base
>
::
value
|
(ranges TS) | |
Le modèle de classe
tagged
enrichit un type de classe de type tuple
Base
, dont il dérive publiquement, avec un ensemble d'accesseurs nommés spécifiés par les spécificateurs de tag
Tags...
. Les tags sont appliqués dans l'ordre : le i-ème spécificateur de tag dans
Tags...
correspond au i-ème élément du tuple.
Les spécificateurs de balises dans
Tags...
doivent être uniques. Sinon, le comportement est indéfini.
Il n'est pas possible de supprimer une instance de
tagged
via un pointeur vers une autre classe de base que
Base
.
Table des matières |
Fonctions membres
construit un objet
tagged
(fonction membre publique) |
|
assigne un objet
tagged
(fonction membre publique) |
|
échange le contenu de deux objets
tagged
(fonction membre publique) |
Accesseurs d'éléments nommés
Pour le
N
-ième spécificateur de tag dans
Tags...
dont l'élément correspondant est nommé
name
,
tagged
fournit des accesseurs nommés
name
comme suit :
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)); }
Fonctions non membres
spécialise
swap
pour les objets
tagged
(fonction) |
Accès de type tuple
obtient la taille d'un
tagged
(spécialisation de modèle de classe) |
|
obtient les types des éléments d'un
tagged
(spécialisation de modèle de classe) |
Voir aussi
|
spécifie qu'un type est un spécificateur de balise
(concept) |
|
|
alias de modèle pour un
std::pair
balisé
(alias template) |
|
fonction utilitaire pour créer un
tagged_pair
(function template) |
|
|
alias de modèle pour un
std::tuple
balisé
(alias template) |
|
fonction utilitaire pour créer un
tagged_tuple
(function template) |
|
|
spécificateurs de balise à utiliser avec
ranges::tagged
(class) |