【发布时间】:2013-01-08 03:09:30
【问题描述】:
当我尝试使用 vector <fstream> 时,它会输出编译错误。为什么C++禁止fstream的向量?
【问题讨论】:
-
在非 C++11 编译器上可能(不一定明智)的解决方法是使用
std::vector <std::fstream*>...
当我尝试使用 vector <fstream> 时,它会输出编译错误。为什么C++禁止fstream的向量?
【问题讨论】:
std::vector <std::fstream*> ...
因为 fstream 不可复制
【讨论】:
fstream 仅在 C++11 中是“可移动的”,因为该概念在 C++03 中不存在。在 C++11 中,您可以将可移动类型放入 C++11 std::vector。所以他的代码可以在 C++11 编译器上编译。
std::vector 无论如何都会移动,而不管noexcept-ness。