私が書いた最初のプログラムは、Visual C ++でのコンパイルを拒否し、「>>」演算子がistreamに対して定義されていないことを訴えているようです。
注意深く調べたところ、正しいように見えたので、g ++で確認したところ、正常にコンパイルされました(-Wallによる警告はありません)。
では、なぜそれはg ++で動作するのに、VisualC++では動作しないのでしょうか。
プログラムは次のとおりです。
#include <iostream>
#include <list>
int main() {
std::list<std::string> list;
std::string str = "";
std::cin >> str;
while (str.compare("q") != 0) {
list.push_back(str);
std::cin >> str;
}
std::cout << "You entered: \n";
for (std::list<std::string>::iterator i = list.begin(); i != list.end(); i++) {
std::cout << *i << std::endl;
}
return 0;
}
Visual C++用に記述されたC++コードとg++用に記述されたC++コードは、ほとんどの状況でほぼ同じだと思っていました。
それらはどれほど異なっていますか、これらの種類の問題が発生する頻度はどれくらいですか、そして私がこれらの違い/落とし穴のいくつかを見つけることができる場所を知っていますか?