std::complex<T>:: complex
|
Основной шаблон (
std::
complex
<
T
>
)
|
||
| (1) | ||
|
complex
(
const
T
&
re
=
T
(
)
,
const
T
&
im
=
T
(
)
)
;
|
(до C++14) | |
|
constexpr
complex
(
const
T
&
re
=
T
(
)
,
const
T
&
im
=
T
(
)
)
;
|
(начиная с C++14) | |
| (2) | ||
|
complex
(
const
complex
&
other
)
;
|
(до C++14) | |
|
constexpr
complex
(
const
complex
&
other
)
;
|
(начиная с C++14)
(до C++23) |
|
|
constexpr
complex
(
const
complex
&
other
)
=
default
;
|
(начиная с C++23) | |
| (3) | ||
|
template
<
class
X
>
complex ( const complex < X > & other ) ; |
(до C++14) | |
|
template
<
class
X
>
constexpr complex ( const complex < X > & other ) ; |
(начиная с C++14)
(до C++23) |
|
|
template
<
class
X
>
constexpr explicit ( /* см. ниже */ ) complex ( const complex < X > & other ) ; |
(начиная с C++23) | |
|
Стандартная явная специализация
std::
complex
<
float
>
(до C++23)
|
||
| (1) | ||
|
complex
(
float
re
=
0.0f
,
float
im
=
0.0f
)
;
|
(до C++11) | |
|
constexpr
complex
(
float
re
=
0.0f
,
float
im
=
0.0f
)
;
|
(начиная с C++11) | |
|
constexpr
complex
(
const
complex
<
float
>
&
other
)
=
default
;
|
(2) | (начиная с C++20) |
| (3) | ||
|
explicit
complex
(
const
complex
<
double
>
&
other
)
;
explicit complex ( const complex < long double > & other ) ; |
(до C++11) | |
|
constexpr
explicit
complex
(
const
complex
<
double
>
&
other
)
;
constexpr explicit complex ( const complex < long double > & other ) ; |
(начиная с C++11) | |
|
Стандартная явная специализация
std::
complex
<
double
>
(до C++23)
|
||
| (1) | ||
|
complex
(
double
re
=
0.0
,
double
im
=
0.0
)
;
|
(до C++11) | |
|
constexpr
complex
(
double
re
=
0.0
,
double
im
=
0.0
)
;
|
(начиная с C++11) | |
|
constexpr
complex
(
const
complex
<
double
>
&
other
)
=
default
;
|
(2) | (начиная с C++20) |
| (3) | ||
|
complex
(
const
complex
<
float
>
&
other
)
;
explicit complex ( const complex < long double > & other ) ; |
(до C++11) | |
|
constexpr
complex
(
const
complex
<
float
>
&
other
)
;
constexpr explicit complex ( const complex < long double > & other ) ; |
(начиная с C++11) | |
|
Стандартная явная специализация
std::
complex
<
long
double
>
(до C++23)
|
||
| (1) | ||
|
complex
(
long
double
re
=
0.0L,
long
double
im
=
0.0L
)
;
|
(до C++11) | |
|
constexpr
complex
(
long
double
re
=
0.0L,
long
double
im
=
0.0L
)
;
|
(начиная с C++11) | |
|
constexpr
complex
(
const
complex
<
long
double
>
&
other
)
=
default
;
|
(2) | (начиная с C++20) |
| (3) | ||
|
complex
(
const
complex
<
float
>
&
other
)
;
complex ( const complex < double > & other ) ; |
(до C++11) | |
|
constexpr
complex
(
const
complex
<
float
>
&
other
)
;
constexpr complex ( const complex < double > & other ) ; |
(начиная с C++11) | |
Конструирует объект std:: complex . Стандартные явные специализации ( std:: complex < float > , std:: complex < double > и std:: complex < long double > ) имеют отличные от основного шаблона объявления конструкторов. (до C++23)
|
Основной шаблон предоставляет шаблон преобразующего конструктора, в то время как каждая стандартная явная специализация предоставляет два нешаблонных конструктора для двух других стандартных явных специализаций. Нешаблонные конструкторы являются преобразующими конструкторами (т.е. не explicit) тогда и только тогда, когда преобразования действительной и мнимой частей не являются сужающими. |
(до C++23) |
|
Для основного шаблона выражение внутри
explicit
вычисляется в
false
тогда и только тогда, когда
ранг преобразования с плавающей точкой
для
|
(начиная с C++23) |
Параметры
| re | - | действительная часть |
| im | - | мнимая часть |
| other | - | другое комплексное число для использования в качестве источника |
Примечания
Начиная с C++23, конструктор копирования должен быть тривиальным для соответствия требованиям TriviallyCopyable , однако реализации обычно делают его тривиальным во всех режимах.
Смотрите также
|
присваивает содержимое
(public member function) |
|
|
литерал
std::complex
представляющий чисто мнимое число
(function) |
|
|
C documentation
для
CMPLX
|
|