今日問題が発生しました。次のコードは MSVC++ 2010 では機能するようですが、Clang LLVM 4.1 (GNU++11 を使用) では機能しないようです。
#include <fstream>
void foo(std::fstream& file){
file << "foo";
}
int main() {
std::fstream dummy("dummy");
foo(dummy);
return 0;
}
生成する
Invalid operands to binary expression (std::fstream (aka basic_fstream<char>) and const char[4])
クランで。C++ では iostream 引数を参照渡しするのが一般的だと思いました。これがclang、C++ 11、またはその他に関連しているかどうかさえわかりません。
ストリームを関数に渡す方法はありますか?