Namespaces
Variants

std::complex<T>::complex

cppreference.net에서
 
 
 
 
주 템플릿 (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까지)

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

주 템플릿은 변환 생성자 템플릿을 제공하는 반면, 각 표준 명시적 특수화는 다른 두 표준 명시적 특수화에 대해 두 개의 비템플릿 생성자를 제공합니다.

비템플릿 생성자는 실수부와 허수부의 변환이 축소가 아닌 경우에만 변환 생성자(즉, 비명시적)입니다.

(C++23까지)

기본 템플릿의 경우, explicit은(는) false다음 조건을 만족할 때만: 부동소수점 변환 순위의 T이(가) 부동소수점 변환 순위보다 크거나 같음: X입니다.

(C++23부터)

매개변수

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

참고 사항

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

참고 항목

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