Как добавить отступ к оператору потока

В нашем проекте мы используем оператор потока c++ (<<) в нашей объектной модели для вывода данных в удобном для чтения формате. Упрощенный пример таков:

std::ostream& operator<<(std::ostream & oStream, const OwnClass& iOwnClass) {
    oStream << "[SomeMember1: " << iOwnClass._ownMember1 << "]\n";
    oStream << "[SomeMember2: " << iOwnClass._ownMember2 << "]\n";
}

Результат в протоколировании:

[SomeMember1: foo]
[SomeMember2: bar]

Теперь мы хотим иметь возможность делать отступ для результата этого оператора.Некоторый вызывающий класс может не хотеть такого результата, но хочет добавить отступ в 2 пробела перед каждой строкой. Мы могли бы добавить в наш класс член, указывающий отступ, но это не кажется элегантным решением.

Конечно, это не очень большая проблема, но наша регистрация была бы такой гораздо лучше, если это сработает.

Спасибо

13
задан Rohit Vipin Mathews 7 March 2012 в 11:06
поделиться