這是生物信息學在Github上非常流行的C++項目:爲什麼這個Github項目將字符串轉換爲bool?
https://github.com/jts/sga/blob/master/src/Util/ClusterReader.cpp
有一行:
bool good = getline(*m_pReader, line);
我不能編譯這條線上,我不不知道作者爲什麼這樣做。
根據documentation,getline
返回一個字符串不bool。事實上,這是我在嘗試編譯該項目時得到的結果:
ClusterReader.cpp: In member function ‘bool
ClusterReader::readCluster(ClusterRecord&)’:
ClusterReader.cpp:70:41: error: cannot convert ‘std::basic_istream<char>’ to ‘bool’ in initialization
bool good = getline(*m_pReader, line);
爲什麼C++代碼將字符串轉換爲bool?這怎麼可能?
不,std :: getline返回原始流,如果沒有錯誤,流上的布爾類型轉換將返回「true」。你使用什麼編譯器?如果你想解決這個問題,你可以修改該行爲'bool good = getline(* m_pReader,line).good();' – paddy
這表明編譯器錯誤(包括編譯器和庫安裝可能不匹配)。你使用的是什麼編譯器和設置? –