Namespaces
Variants

std::experimental::ranges:: tagged

From cppreference.net
Défini dans l'en-tête <experimental/ranges/utility>
template < class Base, TagSpecifier ... Tags >

requires sizeof... ( Tags ) <= std:: tuple_size < Base > :: value

struct tagged ;
(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)