This question already has an answer here:
- Why istream object can be used as a bool expression? 2 answers
The istream operator>> is used to read the data and the function returns reference to istream.
For example,
istream& operator>> (bool& val);
But how does the istream is converted into a bool when it is used inside the conditional statement.
For example,
ifstream ifs(.....); // open the file
istream &is = (istream&)ifs;
char c;
if(is >> c) // how the istream is been evaluated into as bool
{
// character read
}
Can anyone explain how it is being converted into a bool inside a conditional expression?