template<class T>
complex<T> operator*(const complex<T>& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator*(const complex<T>& lhs, const T& rhs);
template<class T>
complex<T> operator*(const T& lhs, const complex<T>& rhs);
The operators each convert both operands to the return type, then return the complex product of the converted lhs
and rhs
.