【发布时间】:2017-12-15 16:15:09
【问题描述】:
执行以下代码时出现错误“C2280:尝试引用已删除的函数”编译错误:
std::ofstream ofs(m_headerFileName, std::ios::binary, std::ios_base::app);
m_ofsHeader.push_back(ofs);
在哪里
std::vector<std::ofstream> m_ofsHeader;
我不明白为什么我不能将 ofstream 实例推送到 ofstream vector。有人给点提示吗?谢谢。我在 Windows 7 和 Visual Studio 2015 上。
另外,如果有的话,这里的周边是什么?
我正在尝试保留一堆 ifstream/ofstream,每个都有自己的文件要读/写。
【问题讨论】:
-
流不能被复制,流只能有一个实例。
-
那么解决方法是什么?
-
您可以使用 c++11 移动流。
-
这取决于,你为什么要这样做?您想使用此解决方案解决的实际问题是什么?用例是什么?请read about the XY problem 并花一些时间来思考这个问题如何可能是一个问题。
-
为什么不将指针(或智能指针)放入向量中