std:: tuple_size <std::pair>
|
Défini dans l'en-tête
<utility>
|
||
|
template
<
class
T1,
class
T2
>
struct
tuple_size
<
std::
pair
<
T1, T2
>>
|
(depuis C++11) | |
La spécialisation partielle de std:: tuple_size pour les paires fournit un moyen à la compilation d'obtenir le nombre d'éléments dans une paire, qui est toujours 2, en utilisant une syntaxe de type tuple.
Table des matières |
Hérité de std:: integral_constant
Constantes membres
|
value
[static]
|
la valeur constante 2
(constante membre publique statique) |
Fonctions membres
|
operator std::size_t
|
convertit l'objet en
std::
size_t
, retourne
value
(fonction membre publique) |
|
operator()
(C++14)
|
retourne
value
(fonction membre publique) |
Types membres
| Type | Définition |
value_type
|
std:: size_t |
type
|
std:: integral_constant < std:: size_t , value > |
Exemple
#include <iostream> #include <tuple> #include <utility> template<class T> void test([[maybe_unused]]T t) { [[maybe_unused]] int a[std::tuple_size<T>::value]; // peut être utilisé à la compilation std::cout << std::tuple_size<T>::value << '\n'; // ou à l'exécution } int main() { test(std::make_tuple(1, 2, 3.14)); test(std::make_pair(1, 3.14)); }
Sortie :
3 2
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 2313 | C++11 |
les spécialisations pour
pair
n'étaient pas requises d'être dérivées de
integral_constant
|
requis |
Voir aussi
| Structured binding (C++17) | lie les noms spécifiés aux sous-objets ou éléments de tuple de l'initialiseur |
|
(C++11)
|
obtient le nombre d'éléments d'un type de type tuple
(modèle de classe) |
|
(C++11)
|
obtient la taille d'un
array
(spécialisation de modèle de classe) |
|
(C++11)
|
obtient la taille d'un
|
|
obtient la taille d'un
std::ranges::subrange
(spécialisation de modèle de classe) |
|
|
(C++11)
|
obtient le type des éléments d'une
pair
(spécialisation de modèle de classe) |