std::complex::operator=(3)

NAME
std::complex::operator= - std::complex::operator=

Synopsis
   All specializations
   complex& operator=( const complex& cx ); (until
                        C++20)
   constexpr complex& operator=( const complex& (since
   cx ); C++20)
   template< class X > (until
   complex& operator=( const std::complex<X>& C++20)
   cx );
   template< class X > (since
   constexpr complex& operator=( const C++20)
   std::complex<X>& cx );
   Primary template complex<T>
   complex& operator=( const T& x ); (1) (until
                        C++20)
   constexpr complex& operator=( const T& x ); (2) (since
                        C++20)
   Specializations for standard floating-point
   types complex<F> (until C++23) (3)
   complex& operator=( F x ); (until
                        C++20)
                        (3) (since
   constexpr complex& operator=( F x ); 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""if
   operator""i a std::complex literal representing purely imaginary number
   operator""il (function)
   (C++14)