Namensräume
Varianten
Aktionen

std::tuple_element<std::complex>

Von cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
Definiert in der Header-Datei <complex>
template< std::size_t I, class T >
struct tuple_element<I, std::complex<T>>;
(seit C++26)

Die partiellen Spezialisierungen von std::tuple_element für std::complex bieten zur Kompilierzeit Zugriff auf den zugrunde liegenden realen und imaginären Zahlentyp einer complex-Zahl unter Verwendung einer tupelähnlichen Syntax. Sie werden zur Unterstützung von strukturierten Bindungen bereitgestellt. Das Programm ist ill-formed, wenn I >= 2.

Inhalt

[bearbeiten] Mitgliedertypen

Mitgliedertyp Definition
type T

[bearbeiten] Anmerkungen

Feature-Test-Makro Wert Std Feature
__cpp_lib_tuple_like 202311L (C++26) Hinzufügen des Tuple-Protokolls zu std::complex

[bearbeiten] Beispiel

#include <complex>
#include <type_traits>
 
static_assert([z = std::complex<float>()]
{
    using T = decltype(z);
    return
#if __cpp_lib_tuple_like >= 202311L
        std::is_same_v<std::tuple_element_t<0, T>, float> &&
        std::is_same_v<std::tuple_element_t<1, T>, float> &&
#endif
        std::is_same_v<T::value_type, float>;
}());
 
int main() {}

[bearbeiten] Siehe auch

Strukturierte Bindung (C++17) bindet die angegebenen Namen an Unterobjekte oder Tuple-Elemente des Initialisierers[bearbeiten]
erhält die Elementtypen eines Tupel-ähnlichen Typs
(Klassenvorlage) [edit]
gibt die Größe eines std::complex zurück
(class template specialization) [edit]
erhält eine Referenz auf den realen oder imaginären Teil von std::complex
(function template) [edit]