У меня есть итеративный алгоритм, написанный на C++. Я использую yaml-cpp. На каждой итерации я отправляю некоторые данные объекту YAML::Emitter. Когда алгоритм завершается, я использую YAML::Emitter::c_str() для записи базового буфера в поток.
Однако я бы предпочел постепенно записывать буфер в файл каждые несколько сотен итераций и при каждом приращении очищать записанные данные из объекта YAML::Emitter. Этому есть две причины:
1) В случае неожиданного завершения работы программы я хочу иметь доступ (насколько это возможно) к выходным данным на диске.
2) Объект YAML::Emitter саморасширяется, и я не хочу тратить память.
Как лучше всего это сделать?