下面的代码不起作用并给出以下编译错误:
严重性代码描述项目文件行抑制状态错误二进制表达式的操作数无效('std::wofstream'(又名'basic_ofstream >'))
代码是:
template <class T>
void printtofile(std::string filename, int mode, T var, std::wstring msg)
{
wofstream outfile;
if (mode == 0) outfile.open(filename); else outfile.open(filename, ios::out | ios::app);
outfile << msg << L"\n";
outfile << var << L"\n";
outfile.close();
}
如果我注释掉以下行,则没有错误。
outfile << var << L"\n";
好的。奇怪和令人困惑的是,如果我添加具有不同参数的函数,如下所示,尽管我没有注释掉上面提到的行,但没有错误:
template <class T>
void printtofile(std::string filename, int mode, T var)
{
wofstream outfile;
if (mode == 0) outfile.open(filename); else outfile.open(filename, ios::out | ios::app);
outfile << var << L"\n";
outfile.close();
}
这不是一回事吗?这里发生了什么?