# std::complex<T>::operator=

From cppreference.com
< cpp‎ | numeric‎ | complex

All specializations |  |
| (1) |
complex& operator=( const complex& cx ); |  | (until C++20)
constexpr complex& operator=( const complex& cx ); |  | (since C++20)
| (2) |
template< class X > complex& operator=( const std::complex<X>& cx ); |  | (until C++20)
template< class X > constexpr complex& operator=( const std::complex<X>& cx ); |  | (since C++20)
Primary template `complex<T>` |  |
| (3) |
complex& operator=( const T& x ); |  | (until C++20)
constexpr complex& operator=( const T& x ); |  | (since C++20)
Specializations for standard floating-point types `complex<F>` (until C++23) |  |
| (3) |
complex& operator=( F x ); |  | (until C++20)
constexpr complex& operator=( F x ); |  | (since C++20) (until C++23)

Assigns new values to the contents.

1,2) Assigns cx.real() and cx.imag() to the real and the imaginary parts of the complex number respectively. The copy assignment operator (1) is trivial when `T` is a floating-point type.(since C++23)
3) Assigns x to the real part of the complex number. Imaginary part is set to zero.

### Parameters

x | - | value to assign
cx | - | complex value to assign

### Return value

*this

### Notes

The copy assignment operator is required to be trivial since C++23, but implementations generally make it trivial in all modes.

### 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 3935 | C++98 | the description of overload (2) was missing | added

### See also

(constructor) | constructs a complex number (public member function)
operator""ifoperator""ioperator""il (C++14) | a std::complex literal representing purely imaginary number (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/complex/operator%3D&oldid=162277"