W3cubDocs

/C++

std::complex<T>::imag

std::complex<T>
(1)
T imag() const;
(until C++14)
constexpr T imag() const;
(since C++14)
(2)
void imag( T value );
(until C++20)
constexpr void imag( T value );
(since C++20)
std::complex<float>
(1)
float imag() const;
(until C++11)
constexpr float imag() const;
(since C++11)
(2)
void imag( float value );
(until C++20)
constexpr void imag( float value );
(since C++20)
std::complex<double>
(1)
double imag() const;
(until C++11)
constexpr double imag() const;
(since C++11)
(2)
void imag( double value );
(until C++20)
constexpr void imag( double value );
(since C++20)
std::complex<long double>
(1)
long double imag() const;
(until C++11)
constexpr long double imag() const;
(since C++11)
(2)
void imag( long double value );
(until C++20)
constexpr void imag( long double value );
(since C++20)

Accesses the imaginary part of the complex number.

1) Returns the imaginary part.
2) Sets the imaginary part to value.

Parameters

value - the value to set the imaginary part to

Return value

1) The imaginary part of *this.
2) (none)

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

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

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

See also

returns the imaginary part
(function template)
accesses the real part of the complex number
(public member function)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/complex/imag