Часто при написании файловых писателей или парсеров в C++ я хотел бы отслеживать прогресс писателя/парсера через файл по мере его записи/чтения. С этой целью, я думал о реализации что-то вроде:Как отслеживать потоки в C++
ostream_monitor my_monitor(&my_output_stream, &cout);
my_monitor << my_variable;
Это будет иметь эффект вывода my_variable на my_output_stream, а также COUT, так что я могу видеть это.
Кроме того, было бы неплохо иметь версию ввода одного и того же:
istream_monitor my_monitor(&my_input_stream, &cout);
my_monitor >> my_variable;
Это будет читать следующую лексему прочь my_input_stream, и использовать его для установки my_variable, но и выходные символы чтения to cout, поэтому я вижу поток, когда он читается.
Я мог бы пойти и попытаться сделать подклассы std :: istream и std :: ostream, которые делают это, но, похоже, потенциально много инженерных инструментов для отладки, которые могут быть полезными или не могут быть полезными. Поэтому мне предлагается спросить:
Что вы делаете, чтобы следить за ходом анализатора через файл? Мне интересно услышать любые решения, которые кажутся более простыми для реализации, чем предыдущие.