complex<long double> template specialization — Extended-precision complex number
template<> class complex<long double> { public: typedef long double value_type; complex(long double re = 0.0L, long double im = 0.0L); complex(const complex<float>&); complex(const complex<double>&); long double real( ) const; long double imag( ) const; complex<long double>& operator=(const complex<long double>&); complex<long double>& operator= (long double); complex<long double>& operator+=(long double); complex<long double>& operator-=(long double); complex<long double>& operator*=(long double); complex<long double>& operator/=(long double); template<typename X> complex<long double>& operator= (const complex<X>&); template<typename X> complex<long double>& operator+=(const complex<X>&); template<typename X> complex<long double>& operator-=(const complex<X>&); template<typename X> complex<long double>& operator*=(const complex<X>&); template<typename X> complex<long double>& operator/=(const complex<X>&); };
The complex<long
double>
class is a straightforward specialization of
the complex
class template. It
changes the operators to pass long
double
parameters by value instead of by
reference.