Как ссылки на iostream оцениваются как истина / ложь - PullRequest
2 голосов
/ 26 августа 2011

Пример кода:

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main() {
    int num;
    stringstream ss("1");
    if (ss >> num) cout << "It was true\n";
    return 0;
}

Как "ss >> num" может вычислить логическое значение? Есть ли какой-нибудь оператор, который был перегружен в stringstream? STL говорит, что оператор >> возвращает ссылку на поток.

1 Ответ

4 голосов
/ 26 августа 2011

Да, iostreams имеют operator void* в C ++ 03 и явное преобразование в bool в C ++ 11.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...