Я std::getline(...)
девственница и посоветовавшись документацию и пример в cppreference.com, я смущен пример кода, как это:Как std :: getline() приравнивается к bool?
#include <sstream>
#include <string>
int main(int argc, char* argv[])
{
std::string line;
std::ifstream infile("sample.txt");
while (std::getline(infile, line))
{
// Do stuff
}
return 0;
}
... конкретно заявление то время как: while (std::getline(infile, line))
.
В отмеченной документации указано, что возвращаемое значение std::getline(std::basic_istream<CharT,Traits>& input, ...)
равно input
, то есть ссылку на первый аргумент.
Как можно использовать возвращаемое значение getline
как условие цикла while, которое должно быть типа bool
?
std::ifstream
осуществить operator bool()
?
«* ли' зЬй :: ifstream' реализовать 'operator bool()'? * 'Почему [да, это так] (http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool), и вы можете [посмотреть его на это тот же сайт] (http://en.cppreference.com/w/cpp/io/basic_ifstream). – Biffen
«Выполняет ли' std :: ifstream' 'оператор bool()'? "? [Закрыть. Унаследованный один] (http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool) – user4581301
И pre C++ 11 имел 'operator void *'. –