-
报错
error C2280: “std::basic_ifstream<char,std::char_traits>::basic_ifstream(const std::basic_ifstream<char,std::char_traits> &)”: 尝试引用已删除的函数 -
原因
在系统声明中有这么一句代码basic_ifstream(const basic_ifstream&) = delete;
这句话的意思是base_fstream类的拷贝(赋值)构造函数是已删除函数,这样可以防止多个对象同时读取或写入IO缓冲区。(未能理解)
-
解决方法
若ifstream作为函数形参时,将其改为传址pass by reference。
例如将void init_vs(ifstream);
改写成void init_vs(ifstream &);
相关文章: