Tengo curiosidad por cómo el fstream
class
puede devolver un valor true
o false
simplemente colocando el nombre del objeto dentro de una declaración condicional. Por ejemplo ...¿Cómo devuelve if ('fstream object') un valor verdadero o falso dependiendo de si el archivo fue abierto?
std::fstream fileStream;
fileStream.open("somefile.ext");
if (!fileStream) // How does this work?
std::cout << "File could not be opened...\n";
Pregunto esto porque quiero que mi propia clase devuelva un valor si lo uso de una manera similar.
Esto se conoce como el [seguro-bool idioma] (http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Safe_bool), y no debería usarse en el nuevo código C++ 11 a favor de 'operador explícito bool()'. – ildjarn
Eso es correcto. Me había olvidado por completo de esto. No puedo marcar su comentario como la respuesta, ¡pero gracias! –