std::tuple_size<std::complex>
Von cppreference.com
| Definiert in der Header-Datei <complex> |
||
| template< class T > struct tuple_size<std::complex<T>> |
(seit C++26) | |
Die partielle Spezialisierung von std::tuple_size für std::complex bietet eine Compile-Zeit-Möglichkeit, die Anzahl der Komponenten einer complex-Zahl zu ermitteln, die immer 2 beträgt, unter Verwendung einer Tupel-ähnlichen Syntax. Sie wird zur Unterstützung von strukturierten Bindungen bereitgestellt.
Inhalt |
Abgeleitet von std::integral_constant
Member-Konstanten
| value [static] |
der konstante Wert 2 (öffentliche statische Member-Konstante) |
Memberfunktionen
| operator std::size_t |
konvertiert das Objekt zu 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] Hinweise
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_tuple_like |
202311L |
(C++26) | Hinzufügen des Tuple-Protokolls zu std::complex |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <complex> static_assert(std::tuple_size_v<std::complex<float>> == 2); static_assert([] { using namespace std::literals; auto [re, im] = -1.5 + 2.5i; return re == -1.5 && im == 2.5; }()); static_assert([] { using namespace std::literals; auto z = std::complex<double>{}; auto& [re, im] = z; re = 1.0; im = 2.0; return z == 1.0 + 2.0i; }()); int main() {}
[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) |
| ermittelt den zugrundeliegenden realen und imaginären Zahlentyp von std::complex (class template specialization) | |
| (C++26) |
erhält eine Referenz auf den realen oder imaginären Teil von std::complex (function template) |