En nuestro proyecto utilizamos el operador de secuencia C++ (< <) en nuestro modelo de objetos para imprimir un formato de datos fácil de leer. Un ejemplo simplificado es la siguiente:Cómo agregar indention al operador de secuencia
std::ostream& operator<<(std::ostream & oStream, const OwnClass& iOwnClass) {
oStream << "[SomeMember1: " << iOwnClass._ownMember1 << "]\n";
oStream << "[SomeMember2: " << iOwnClass._ownMember2 << "]\n";
}
Resultando en esto en el registro:
[SomeMember1: foo]
[SomeMember2: bar]
Lo que queremos ahora es ser capaz de sangrar el resultado de ese operador. Algunas clases de llamadas pueden no desear el resultado de esta manera, pero desean agregar 2 espacios de sangría 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 gran problema, pero nuestro registro sería mucho mejor si esto funcionara.
Gracias
¡Funcionó a la perfección! Sin embargo, hice algunos cambios, como agregar un método increaseIndent y decreaseIndent. Mis registros se ven exactamente como los quiero ahora. Gracias. –
@James: ¿También tendrías el código más complejo disponible, por favor? – Cookie