std::tuple_size<std::tuple>
Depuis fr.cppreference.net
| Défini dans l'en-tête <tuple>
|
||
template< class... Types >
struct tuple_size< std::tuple<Types...> >
: std::integral_constant<std::size_t, sizeof...(Types)> { };
|
(depuis C++11) | |
Fournit l'accès au nombre d'éléments d'un tuple sous forme d'une expression constante à la compilation.
Modèle de variable d'assistance
|
template
<
class
T
>
constexpr std:: size_t tuple_size_v = tuple_size < T > :: value ; |
(depuis C++17) | |
Hérité de std:: integral_constant
Constantes membres
|
value
[static]
|
sizeof...(Types)
(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> template <class T> void test(T value) { int a[std::tuple_size_v<T>]; // peut être utilisé à la compilation std::cout << std::tuple_size<T>{} << ' ' // ou à l'exécution << sizeof a << ' ' << sizeof value << '\n'; } int main() { test(std::make_tuple(1, 2, 3.14)); }
Sortie possible :
3 12 16
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'une
pair
(spécialisation de modèle de classe) |
|
(C++11)
|
obtient la taille d'un
array
(spécialisation de modèle de classe) |
|
obtient la taille d'un
std::ranges::subrange
(spécialisation de modèle de classe) |
|
|
(C++11)
|
tuple accède à l'élément spécifié
(modèle de fonction) |