std::complex<T>::imag
Min standard notice:
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
value: the value to set the imaginary part to
# 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
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 387 | C++98 | the imaginary part could not be set directly | can be set directly via a new imag overload |