//代表一个复数
template<typename _Tp> class Complex
{
public:
//! constructors
Complex();
Complex( _Tp _re, _Tp _im=0 );
Complex( const std::complex<_Tp>& c );
//! conversion to another data type
template<typename T2> operator Complex<T2>() const;
//! conjugation
Complex conj() const;
//! conversion to std::complex
operator std::complex<_Tp>() const;
_Tp re, im; //< the real and the imaginary parts
};