我的成员是std::ofstream fBinaryFile
和
void setFile( std::ofstream& pBinaryFile )
{
fBinaryFile = pBinaryFile;
}
输出:
Data.h:86:16: error: use of deleted function ‘std::basic_ofstream<char>& std::basic_ofstream<char>::operator=(const
std::basic_ofstream<char>&)’
fBinaryFile = pBinaryFile;
^
我知道std::ofstream
中的副本不被允许,也许我错过了一些东西。可以在pBinaryFile
中保存fBinaryfile
的内容吗?
答案 0 :(得分:9)
因为相关运算符被声明为
ofstream
这意味着它被明确禁止,因此def Job1 = 'FromTemplate-testJob'
job {
name Job1
steps {
batchFile( "echo Hello > out5.txt" )
batchFile( "echo custard > op4.txt" )
}
}
语义可以支持复制。
根据您的架构,您可以存储指针/引用或移动它。
答案 1 :(得分:0)
如果要将pBinaryFile的内容复制到fBinaryFile,则需要将pBinaryfile声明为ifstream(输入文件流),而不是ofstream(输出文件流) 看起来应该是这样的:
std::ifstream pBinaryFile;
std::ofstream fBinaryFile;
std::stringstream sstream;
std::string line
pBinaryFile.open(pBinaryFileName.c_str());
fBinaryFile.open(fBinaryFileName.c_str());
if (pBinaryFile.isopen()) {
while (pBinaryFile.good()) {
getline(pBinaryFile, line);
fBinaryFile << sstream(line) << endl;
}
}
pBinaryFile.close();
fBinaryFile.close();
请注意,pBinaryFileName和fBinaryFileName引用文件的路径。
此代码中可能存在错误,但我认为解决方案与此类似。
我建议进一步阅读: