¿Alguien sabe por qué el objeto istream se puede usar como expresión bool? Por ejemplo:¿Por qué el objeto istream se puede usar como una expresión bool?
ifstream input("tmp");
int iValue;
while (input >> iValue)
//do something;
Aquí input >> iValue
devuelve una referencia al objeto ifstream. Quiero saber por qué este objeto se puede usar como una expresión bool.
miro en la clase ifstream y encontrar que esto puede deberse a la siguiente función miembro:
operator void * () const;
Ver here para los detalles acerca de esta función.
Si es así, ¿alguien puede explicarme esta función? El prototipo de esta función es diferente de la declaración de sobrecarga del operador habitual. ¿Cuál es el tipo de devolución de esta función?
Si no es así, ¿cuál es la razón por la que el objeto ifstream se puede usar como expresión bool?
¡Esperamos su ayuda!
cheng
Bien hizo la pregunta a pesar de tener una respuesta directa. –
Desde C++ 11 existe en realidad 'operador explícito bool()' –