complex::complex

complex(const T& re = 0, const T& im = 0);
complex(const complex& x);

The first constructor initializes the stored real part to re and the stored imaginary part to im. The second constructor initializes the stored real part to x.real() and the stored imaginary part to x.imag().

In this implementation, if a translator does not support member template functions, the template:

template<class U>
    complex(const complex<U>& x);

is replaced by:

complex(const complex& x);

which is the copy constructor.