Namespaces
Variants

std::complex<T>:: complex

From cppreference.net
主模板 ( 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 起)

构造 std:: complex 对象。 标准显式特化( std:: complex < float > std:: complex < double > std:: complex < long double > )的构造函数声明与主模板不同。 (C++23 前)

1) 通过实部 re 和虚部 im 构造复数。
2) 拷贝构造函数。使用 other 内容的副本构造对象。 在标准显式特化中隐式声明拷贝构造函数。 (until C++20)
3) 转换构造函数 。通过不同类型的复数构造对象。

主模板提供一个转换构造函数模板,而每个标准显式特化为另外两个标准显式特化提供两个非模板构造函数。

当且仅当实部与虚部的转换不是窄化转换时,这些非模板构造函数才是转换构造函数(即非 explicit 的)。

(C++23 前)

对于主模板,当且仅当 T 浮点转换等级 大于等于 X 的浮点转换等级时, explicit 内的表达式求值为 false

(C++23 起)

参数

re - 实部
im - 虚部
other - 用作源的另一个复数

注释

自 C++23 起,复制构造函数需要满足 平凡 要求才能符合 TriviallyCopyable 要求,但实现通常在所有模式下都会使其保持平凡特性。

参见

赋值内容
(公开成员函数)
表示纯虚数的 std::complex 字面量
(函数)
C 文档 关于 CMPLX