Полезно ли регистрировать вывод в файл в деструкторе класса C++? Моим вариантом использования является симулятор, в котором у меня есть класс ведения журнала, который регистрируется в структуре данных в памяти, а затем сбрасывает все это в файл, когда он разрушен.Регистрация в деструкторе
Это похоже на вопрос здесь (C# class: Do logging/housekeeping, should I use a destructor?), но мой вопрос касается стандартного не собранного мусора C++, а не C#.
Нет причин, по которым вы не могли этого сделать. Вы не должны вызывать исключение из деструктора, но в остальном вы можете делать почти все, что хотите, включая такие вещи, как например. освобождая ресурсы/память/блокировки или хорошо, регистрируя, что объект был уничтожен. – Damon
Это зависит от того, как вы собираетесь настроить регистрацию. Используете ли вы стандартный IO (либо cstdio, либо iostream)? Вы используете рамки? Что-то более развитое? Не должно быть проблем с регистрацией деструкторов, но убедитесь, что вы не разрешаете вашему журналу генерировать исключения (в частности, не обрабатывать ошибки ввода-вывода при регистрации таким образом) –