Como adicionar recuo ao operador de fluxo

Em nosso projeto, usamos o operador de fluxo c ++ (<<) em nosso modelo de objeto para imprimir um formato legível e fácil dos dados. Um exemplo simplificado é este:

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

Resultando isso no log:

[SomeMember1: foo]
[SomeMember2: bar]

O que queremos agora é poder recuar o resultado desse operador. Algumas classes de chamada podem não querer o resultado dessa forma, mas desejam adicionar recuo de 2 espaços antes de cada linha. Poderíamos adicionar um membro à nossa classe especificando o recuo, mas isso não parece ser uma solução elegant

Claro que esse não é um problema muito grande, mas nosso registro seria muito melhor se isso funcionass

Obrigad