Spec-Zone.ru › C++

std::tuple_element<std::complex>

Определён в заголовочном файле <complex>
template< std::size_t I, class T >
struct tuple_element<I, std::complex<T>>;
(начиная с C++26)

Частичные специализации std::tuple_element для std::complex предоставляют доступ во время компиляции к базовому типу действительной и мнимой частей числа типа complex с использованием синтаксиса, аналогичного кортежу. Они предназначены для поддержки структурированного связывания. Программа некорректна, если I >= 2.

Типы-члены

Тип-член Определение
type T

Примечания

Макрос проверки поддержки возможностей Значение Стандарт Возможность
__cpp_lib_tuple_like 202311L (C++26) Добавление протокола кортежа для std::complex

Пример

#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() {}

См. также

Структурированное связывание (C++17) связывает указанные имена с подобъектами или элементами кортежа инициализатора
tuple_element
(C++11)
получает типы элементов типа, подобного кортежу
(шаблон класса)
std::tuple_size<std::complex>
(C++26)
получает размер std::complex
(специализация шаблона класса)
get(std::complex)
(C++26)
получает ссылку на действительную или мнимую часть значения типа std::complex
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/complex/tuple_element

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API