template std::basic_ostream& operator<< (std::basic_ostream& strm, const std::complex c) { // Временная строка для выполнения вывода с одним аргументом std::basic_ostringstream s; s.flags(strm.flags()); // Копирование флагов потока s.imbue(strm.getloc()); // Копирование локального контеста потока s.precision(strm.precision()); // Копирование точности потока // Подготовка итоговой строки s << '(' << c.real() << ',' << c.imag() << ')'; // Вывод итоговой строки strm << s.str(); return strm; }