Cómo agregar sangría al operador de flujo

En nuestro proyecto, utilizamos el operador de flujo de c ++ (<<) en nuestro modelo de objetos para imprimir un formato fácil de leer de los datos. Un ejemplo simplificado es este:

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

Resultado en esto en el registro:

[SomeMember1: foo]
[SomeMember2: bar]

Lo que queremos ahora es poder sangrar el resultado de ese operador. Es posible que algunas clases de llamadas no deseen el resultado de esta manera, pero desean agregar una sangría de 2 espacios antes de cada línea. Podríamos agregar un miembro a nuestra clase especificando la sangría, pero esa no parece ser una solución elegante.

Por supuesto, este no es un problema muy grande, pero nuestro registro sería mucho mejor si esto funcionara.

Gracia

Respuestas a la pregunta(8)

Su respuesta a la pregunta