Я использую класс, предназначенный для использования следующим образом:
Output() << "Hello.\n";
В его operator <<
я явно использую std :: cout
, но я хотел бы иметь статический член класса, который разрешается в `std :: cout´, поэтому я может делать что-то вроде этого:
copy(some_string_set.begin(), some_string_set.end(), ostream_iterator<string>(Output::m_stream, ", "));
или что-то подобное (я не могу исправить нижнюю строку, пока не исправлю статический элемент данных.
Я даже попробовал auto
, но GCC выдал ошибку
: 'std :: cout' не может появиться в константном выражении
у меня. Как я могу делать то, что хочу? (дело не в том, чтобы использовать std :: cout
во всем моем коде, но чтобы весь вывод проходил через класс Output)