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