std:: tuple_size <std::complex>
|
Определено в заголовочном файле
<complex>
|
||
|
template
<
class
T
>
struct
tuple_size
<
std::
complex
<
T
>>
|
(начиная с C++26) | |
Частичная специализация
std::tuple_size
для
std::complex
предоставляет возможность во время компиляции получать количество компонентов
complex
, которое всегда равно
2
, используя синтаксис, аналогичный кортежу. Она предоставляется для поддержки структурированных привязок.
Содержание |
Наследуется от std:: integral_constant
Константы-члены
|
value
[static]
|
константное значение 2
(публичная статическая константа-член) |
Функции-члены
|
operator std::size_t
|
преобразует объект в
std::
size_t
, возвращает
value
(публичная функция-член) |
|
operator()
(C++14)
|
возвращает
value
(публичная функция-член) |
Типы-члены
| Тип | Определение |
value_type
|
std:: size_t |
type
|
std:: integral_constant < std:: size_t , value > |
Примечания
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_tuple_like
|
202311L
|
(C++26) | Добавление tuple-протокола к std::complex |
Пример
#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() {}
Смотрите также
| Structured binding (C++17) | связывает указанные имена с подобъектами или элементами кортежа инициализатора |
|
(C++11)
|
получает количество элементов типа, подобного кортежу
(шаблон класса) |
|
получает базовый тип действительного и мнимого числа для
std::complex
(специализация шаблона класса) |
|
|
(C++26)
|
получает ссылку на действительную или мнимую часть из
std::complex
(шаблон функции) |