std::complex::complex — cppreference.com
Материал из cppreference.com
<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody>
| Основной шаблон ( |
||
| (1) | ||
|
|
(до C++14) | |
|
|
(начиная с C++14) | |
| (2) | ||
|
|
(до C++14) | |
|
|
(начиная с C++14) (до C++23) |
|
|
|
(начиная с C++23) | |
| (3) | ||
|
|
(до C++14) | |
|
|
(начиная с C++14) (до C++23) |
|
|
|
(начиная с C++23) | |
| Явные специализации для |
||
| (1) | ||
|
|
(до C++11) | |
|
|
(начиная с C++11) | |
|
|
(2) | (начиная с C++20) |
| (3) | ||
|
|
(до C++11) | |
|
|
(начиная с C++11) | |
| Явные специализации для |
||
| (1) | ||
|
|
(до C++11) | |
|
|
(начиная с C++11) | |
|
|
(2) | (начиная с C++20) |
| (3) | ||
|
|
(до C++11) | |
|
|
(начиная с C++11) | |
| Явные специализации для |
||
| (1) | ||
|
|
(до C++11) | |
|
|
(начиная с C++11) | |
|
|
(2) | (начиная с C++20) |
| (3) | ||
|
|
(до C++11) | |
|
|
(начиная с C++11) | |
Создает объект std::complex. Явные специализации для (std::complex<float>, std::complex<double> иstd::complex<long double>) имеют объявления конструкторов отдельные от основного шаблона (до C++23)
1) Создает комплексное число по вещественной части re и мнимой части im.
2) Конструктор копирования. Создает объект с копией содержимого other. Конструкторы копирования неявно объявляются в явных специализациях.. (до C++20)
3) Конструктор преобразования. Создает объект из комплексного числа другого типа.
|
Основной шаблон предоставляет конвертирующий шаблон конструктора, в то время как каждая стандартная явная специализация предоставляет два нешаблонных конструктора для двух других стандартных явных специализаций. Нешаблонные конструкторы являются преобразующими конструкторами (т.е. неявными) тогда и только тогда, когда преобразования действительной и мнимой частей не являются сужающими. |
(до C++23) |
|
Для основного шаблона выражение внутри |
(начиная с C++23) |
Параметры
| re | — | вещественная часть |
| im | — | мнимая часть |
| other | — | ругое комплексное число для использования в качестве исходного |
Примечание
Начиная с C++23, конструктор копирования долже тривиальным, чтобы удовлетворять требованию TriviallyCopyable, но реализации обычно делают его тривиальным во всех режимах.