Как я могу сохранить ссылку на `std :: cout` в качестве члена класса

Я использую класс, предназначенный для использования следующим образом:

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)

5
задан rubenvb 22 February 2011 в 17:47
поделиться