Namensräume
Varianten
Aktionen

std::tuple_size<std::tuple>

Von cppreference.com
< cpp‎ | utility‎ | tuple
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
Definiert in der Header-Datei <tuple>
template< class... Types >

struct tuple_size< std::tuple<Types...> >

    : std::integral_constant<std::size_t, sizeof...(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

#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[bearbeiten]
erhält die Anzahl der Elemente eines Tupel-ähnlichen Typs
(Klassenvorlage) [edit]
ermittelt die Größe eines pair
(Klassenvorlagenspezialisierung) [edit]
ermittelt die Größe eines arrays
(Klassentemplatenspezialisierung) [bearbeiten]
erhält die Größe eines std::ranges::subrange
(Klassentemplate-Spezialisierung) [bearbeiten]
greift auf ein Tupel-Element gemäß Spezifikation zu
(function template) [bearbeiten]