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
>
explicit(/* 见下文 */) constexpr 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 前) | |
explicit
constexpr
complex(
const
complex<double>&
other );
explicit constexpr 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 );
explicit constexpr 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
中的表达式当且仅当 |
(C++23 起) |
参数
re | - | 实部 |
im | - | 虚部 |
other | - | 用作源的另一复数 |
注解
从 C++23 起,为满足可平凡复制 (TriviallyCopyable) 的要求,复制构造函数必须是平凡的,但是实现通常会使其在所有 C++ 标准模式下平凡。
参阅
赋值内容 (公开成员函数) |
|
表示纯虚数的 std::complex
字面量 (函数) |