Вопрос в том, чтобы выбрать, когда и как информация должна синхронизироваться - построчно? Поэтому, независимо от того, буферизирован он или нет, нет другого выбора, кроме как управлять EOL и информацией в строке - сбрасывать ее или выводить напрямую.
Даже если деструктор будет использоваться как EOL / Flush,
{ log << [anything]; }
как синтаксис скобок inline-local stack для вызова деструктора журнала, выходящего из скобок, или как std :: endl, либо должны использоваться либо.
Если мета-объект не реализован с помощью некоторого оператора присоединения, такого как «<<» или «+», вы заканчиваете весь путь, обязанный использовать явный способ завершить строку и / или очистить. </p>