Por que os objetos iostream não sobrecarregam o operador bool?
Emesta resposta Eu falo sobre usar umstd::ifstream
conversão de objetos parabool
para testar se o fluxo ainda está em bom estado. Eu procurei no livro Josuttis para mais informações (p. 600 se você estiver interessado), e acontece que oiostream
objetos realmente sobrecarregaroperator void*
. Ele retorna um ponteiro nulo quando o fluxo é ruim (o que pode ser implicitamente convertido parafalse
) e um ponteiro não nulo (convertido implicitamente paratrue
). Por que eles não apenas sobrecarregamoperator bool
?