C ++ O que há de errado em usar um método toString ()

Acabei de me depararessa questão que é sobre como conseguir imprimir um objeto via

std::cout << x << std::endl;

Pelo que entendi, a maneira padrão de fazer isso é sobrecarregar o operador ostreams <<. No entanto, isso está adicionando um recurso ao ostream, e não à minha classe.

A alternativa (também fornecida como resposta à pergunta mencionada acima) é substituir o operador de conversão de string. No entanto, isso vem com o aviso de levar a "conversões não intencionais e erros difíceis de rastrear".

Agora, eu me pergunto se há algum inconveniente em escrever um método toString () e usá-lo via

std::cout << x.toString() << std::endl;

questionAnswers(5)

yourAnswerToTheQuestion