Захват / перенаправление cout в функцию


Можно ли захватить cout таким образом, чтобы каждый стандартный вывод (cout << "example";) автоматически вызывал функцию (myfunc("example");)?

1 2

1 ответ:

Один из способов-создать класс, который имеет соответствующие перегрузки operator<<, и создать глобальный экземпляр с именем cout и to using std::whatever вместо using namespace std;. Тогда было бы достаточно легко переключаться с вашего пользовательского cout на std::cout.

Хотя это всего лишь одно решение (которое может потребовать приличного количества работы, больше, чем вы хотите потратить), я уверен, что другие люди знают лучшие способы.