Name

complex<long double> template specialization — Extended-precision complex number

Synopsis

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.