我今天刚刚遇到一个问题:以下代码似乎在 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])
在铿锵。我认为通过引用传递 iostream 参数将是 C++ 中的常见做法。我什至不确定这是否与 clang、C++11 或其他任何东西有关。
知道如何将流传递给函数吗?