There is no direct way to replace operator <<, but you have several options. First, you can simply write your own function to print complex numbers:
template <typename T> void PrintComplex(const complex<T>& c) {
}
nice stream, , , - , complex, operator <<, . :
template <typename T> class ComplexPrinter {
public:
ComplexPrinter(const complex<T>& value) : c(value) {
}
friend ostream& operator<< (ostream& out, const ComplexPrinter& cp) {
}
private:
complex<T> c;
};
-
cout << ComplexPrinter<double>(myComplex) << endl;
, , , :
template <typename T>
ComplexPrinter<T> wrap(const complex<T>& c) {
return ComplexPrinter<T>(c);
}
cout << wrap(myComplex) << endl;
, .
, , complex<T> ComplexPrinter<T> s. , vector< complex<T> >, , ,
vector< complex<double> > v =
copy (v.begin(), v.end(), ostream_iterator< ComplexPrinter<double> >(cout, " "));
complex<double> , .
, , complex, :
template <typename T> class ComplexPrinter {
public:
ComplexPrinter(const complex<T>& value) : c(value) {
}
friend ostream& operator<< (ostream& out, const ComplexPrinter& cp) {
}
private:
const complex<T>& c;
};
complex. ( ). , , , , , , .
, !