std::complex<T>::imag

Accesses the imaginary part of the complex number.

# Declarations

primary template std::complex<T>
T imag() const;

(until C++14)

constexpr T imag() const;

(since C++14)

void imag( T value );

(until C++20)

constexpr void imag( T value );

(since C++20)

specialization std::complex<float>
float imag() const;

(until C++11)

constexpr float imag() const;

(since C++11)

void imag( float value );

(until C++20)

constexpr void imag( float value );

(since C++20)

specialization std::complex<double>
double imag() const;

(until C++11)

constexpr double imag() const;

(since C++11)

void imag( double value );

(until C++20)

constexpr void imag( double value );

(since C++20)

specialization std::complex<long double>
long double imag() const;

(until C++11)

constexpr long double imag() const;

(since C++11)

void imag( long double value );

(until C++20)

constexpr void imag( long double value );

(since C++20)

# Parameters

# Notes

In C++11, overload (1) in std::complex specializations used to be specified without const qualifier. However, in C++11, a constexpr specifier used in a non-static member function implies const, and thus the behavior is as if const is specified.

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
LWG 387C++98the imaginary part could not be set directlycan be set directly via a new imag overload

# See also