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 ( /* see below */ ) 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 이전)

1) 실수부 re 와 허수부 im 로 복소수를 생성합니다.
2) 복사 생성자. other 의 내용 복사본으로 객체를 생성합니다. 복사 생성자들은 표준 명시적 특수화에서 암시적으로 선언됩니다. (C++20 이전)
3) 변환 생성자 . 다른 타입의 복소수 객체로부터 객체를 생성합니다.

메인 템플릿은 변환 생성자 템플릿을 제공하며, 각 표준 명시적 특수화는 다른 두 표준 명시적 특수화를 위한 두 개의 비템플릿 생성자를 제공합니다.

비템플릿 생성자들은 실수부와 허수부의 변환이 축소 변환이 아닌 경우에만 변환 생성자(즉, non-explicit)입니다.

(C++23까지)

메인 템플릿의 경우, explicit 내부의 표현식은 T 부동소수점 변환 순위 X 의 부동소수점 변환 순위보다 크거나 같은 경우에만 false 로 평가됩니다.

(C++23부터)

매개변수

re - 실수부
im - 허수부
other - 소스로 사용할 다른 복소수

참고 사항

C++23부터는 복사 생성자가 trivial 해야 TriviallyCopyable 요구 사항을 충족하지만, 구현체들은 일반적으로 모든 모드에서 이를 trivial하게 만듭니다.

참고 항목

내용을 할당함
(public member function)
순수 허수를 나타내는 std::complex 리터럴
(function)