std::tuple_size<std::tuple>
Von cppreference.com
| Definiert in der Header-Datei <tuple> |
||
| template< class... Types > struct tuple_size< std::tuple<Types...> > |
(seit C++11) | |
Bietet Zugriff auf die Anzahl der Elemente in einem Tupel als zur Kompilierzeit bekannte Konstante.
Inhalt |
[bearbeiten] Hilfs-Variablentemplate
| template< class T > constexpr std::size_t tuple_size_v = tuple_size<T>::value; |
(seit C++17) | |
Abgeleitet von std::integral_constant
Member-Konstanten
| value [static] |
sizeof...(Types) (öffentliche statische Member-Konstante) |
Memberfunktionen
| operator std::size_t |
konvertiert das Objekt in std::size_t, gibt value zurück (öffentliche Memberfunktion) |
| operator() (C++14) |
gibt value zurück (öffentliche Memberfunktion) |
Membertypen
| Typ | Definition |
value_type
|
std::size_t |
type
|
std::integral_constant<std::size_t, value> |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <tuple> template <class T> void test(T value) { int a[std::tuple_size_v<T>]; // can be used at compile time std::cout << std::tuple_size<T>{} << ' ' // or at run time << sizeof a << ' ' << sizeof value << '\n'; } int main() { test(std::make_tuple(1, 2, 3.14)); }
Mögliche Ausgabe
3 12 16
[bearbeiten] Siehe auch
| Strukturierte Bindung (C++17) | bindet die angegebenen Namen an Unterobjekte oder Tuple-Elemente des Initialisierers |
| (C++11) |
erhält die Anzahl der Elemente eines Tupel-ähnlichen Typs (Klassenvorlage) |
| (C++11) |
ermittelt die Größe eines pair(Klassenvorlagenspezialisierung) |
| (C++11) |
ermittelt die Größe eines arrays(Klassentemplatenspezialisierung) |
| erhält die Größe eines std::ranges::subrange (Klassentemplate-Spezialisierung) | |
| (C++11) |
greift auf ein Tupel-Element gemäß Spezifikation zu (function template) |