std::tuple_size<std::pair>
De fr.cppreference.net
| Défini dans l'en-tête <utility>
|
||
template< class T1, class T2 >
struct tuple_size<std::pair<T1, T2>>
: std::integral_constant<std::size_t, 2> { };
|
(depuis C++11) | |
La spécialisation partielle de std::tuple_size pour les paires fournit un moyen au moment de la compilation d'obtenir le nombre d'éléments dans une paire, qui est toujours 2, en utilisant une syntaxe de type tuple.
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
Exécuter ce code
#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) |