Мне было интересно, как это возможно, что мы можем объединить потоковые операции, используя следующий фрагмент кода:
while(getline(stream,string){
//do stuff
}
Я прочитал несколько потоков в Интернете, на stackoverflow и многих других сайтах.Я обнаружил, что потоки используют 2 оператора преобразования
operator void*() const; //c++98
explicit operator bool() const; //c++11
И хотя я могу полностью понять преобразование c ++ 11, у меня возникают проблемы с пониманием того, как возможно обрабатывать указатель вbool test.
Ссылка говорит, что возвращается nullptr, если что-то идет не так, и некоторые другие значения, когда все в порядке.Имея все эти знания, я предполагаю, что все в порядке, тогда вы выполняете тест if () для указателя. Но что произойдет, если я попытаюсь это сделать?Мое приложение падает.
Может ли кто-нибудь объяснить мне, как указатель void * обрабатывается как true / false?