std:: tuple_size <std::tuple>
From cppreference.net
|
Definiert im Header
<tuple>
|
||
|
template
<
class
...
Types
>
struct
tuple_size
<
std::
tuple
<
Types...
>
>
|
(seit C++11) | |
Bietet Zugriff auf die Anzahl der Elemente in einem Tupel als konstanten Ausdruck zur Compile-Zeit.
Inhaltsverzeichnis |
Hilfsvariablen-Template
|
template
<
class
T
>
constexpr std:: size_t tuple_size_v = tuple_size < T > :: value ; |
(seit C++17) | |
Geerbt von std:: integral_constant
Member-Konstanten
|
value
[static]
|
sizeof...(Types)
(öffentliche statische Member-Konstante) |
Member-Funktionen
|
operator std::size_t
|
konvertiert das Objekt zu
std::
size_t
, gibt
value
zurück
(öffentliche Member-Funktion) |
|
operator()
(C++14)
|
gibt
value
zurück
(öffentliche Member-Funktion) |
Member-Typen
| Typ | Definition |
value_type
|
std:: size_t |
type
|
std:: integral_constant < std:: size_t , value > |
Beispiel
Diesen Code ausführen
#include <iostream> #include <tuple> template <class T> void test(T value) { int a[std::tuple_size_v<T>]; // kann zur Kompilierzeit verwendet werden std::cout << std::tuple_size<T>{} << ' ' // oder zur Laufzeit << sizeof a << ' ' << sizeof value << '\n'; } int main() { test(std::make_tuple(1, 2, 3.14)); }
Mögliche Ausgabe:
3 12 16
Siehe auch
| Structured binding (C++17) | bindet die angegebenen Namen an Teilobjekte oder Tupel-Elemente des Initialisierers |
|
(C++11)
|
ermittelt die Anzahl der Elemente eines tupelartigen Typs
(Klassen-Template) |
|
(C++11)
|
ermittelt die Größe eines
pair
(Klassen-Template-Spezialisierung) |
|
(C++11)
|
ermittelt die Größe eines
array
(Klassen-Template-Spezialisierung) |
|
ermittelt die Größe eines
std::ranges::subrange
(Klassen-Template-Spezialisierung) |
|
|
(C++11)
|
greift auf spezifiziertes Tupel-Element zu
(Funktions-Template) |