Nel nostro progetto usiamo l'operatore di flusso C++ (< <) nel nostro modello a oggetti per stampare un formato dei dati facilmente leggibile. Un esempio semplificato è questo:Come aggiungere l'indentazione all'operatore dello streaming
std::ostream& operator<<(std::ostream & oStream, const OwnClass& iOwnClass) {
oStream << "[SomeMember1: " << iOwnClass._ownMember1 << "]\n";
oStream << "[SomeMember2: " << iOwnClass._ownMember2 << "]\n";
}
Con conseguente questo nella registrazione:
[SomeMember1: foo]
[SomeMember2: bar]
Quello che vogliamo ora è quello di essere in grado di rientrare il risultato di tale operatore. Alcune classi chiamanti potrebbero non volere il risultato in questo modo, ma vogliono aggiungere 2 indention di spazi prima di ogni riga. Potremmo aggiungere un membro alla nostra classe specificando l'indention, ma non sembra essere una soluzione elegante.
Ovviamente questo non è un grosso problema, ma il nostro registro sarebbe molto più bello se funzionasse.
Grazie
ha funzionato perfettamente! Ho apportato alcune modifiche, ad esempio aggiungendo un metodo increaseIndent e decreaseIndent. I miei registri sembrano esattamente come li voglio ora. Grazie. –
@James: avresti il codice più complesso disponibile per favore? – Cookie