先说结论:头文件包含
#include <fstream>
作者使用visual studio2015进行C++编程的时候,发现使用ifstream出现“不允许使用不完整的类型”,定位到ifstream的定义为
typedef basic_ifstream<char, char_traits<char> > ifstream;
在iosfwd.h文件中,这时候使用
#include<iosfwd>
是无效的。再定位basic_ifstream到fstream,然后使用
#include <fstream>
解决问题。
同样,后续如果同样遇到使用别名的情况,如上述ifstream的别名,需要包含原始类名basic_ifstream所在文件fstream才行,而不是按f12定位的位置文件。