std::tuple_size<std::pair>
Aus de.cppreference.net
| Definiert in Header <utility>
|
||
template< class T1, class T2 >
struct tuple_size<std::pair<T1, T2>>
: std::integral_constant<std::size_t, 2> { };
|
(seit C++11) | |
Die partielle Spezialisierung von std::tuple_size für Paare bietet eine Möglichkeit zur Kompilierzeit, die Anzahl der Elemente in einem Paar zu ermitteln, die immer 2 ist, unter Verwendung einer tuple-ähnlichen Syntax.
Geerbt von std:: integral_constant
Member-Konstanten
|
value
[static]
|
der konstante Wert 2
(ö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> #include <utility> template<class T> void test([[maybe_unused]]T t) { [[maybe_unused]] int a[std::tuple_size<T>::value]; // kann zur Kompilierzeit verwendet werden std::cout << std::tuple_size<T>::value << '\n'; // oder zur Laufzeit } int main() { test(std::make_tuple(1, 2, 3.14)); test(std::make_pair(1, 3.14)); }
Ausgabe:
3 2
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 2313 | C++11 |
Spezialisierungen für
pair
mussten nicht von
integral_constant
abgeleitet sein
|
erforderlich |
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
array
(Klassen-Template-Spezialisierung) |
|
(C++11)
|
ermittelt die Größe eines
|
|
ermittelt die Größe eines
std::ranges::subrange
(Klassen-Template-Spezialisierung) |
|
|
(C++11)
|
ermittelt den Typ der Elemente eines
pair
(Klassen-Template-Spezialisierung) |