未定义模板'std::basic_ifstream<char,std::char_traits<char>>'的隐式实例化
#ifndef MAPPER_H
#define MAPPER_H
#include <iostream>
#include <string>
#include <vector>
#include "KeyValue.h"
#include "Parser.h"
using namespace std;
class Mapper
{
public:
Mapper(ifstream& infile);
~Mapper(void);
void loadTokens();
void showTokens();
void map();
void printMap();
void printMap(string map_fileName);
private:
ifstream inFile; //<-- is where the error is happening
vector<string> tokens;
vector<KeyValue> map_output;
Parser* parser;
};
#endif
我甚至试过使用 std::ifstream
,但仍然无法正常工作。
当我改用 #include <fstream>
而不是 #include <iostream>
时,在 fstream.tcc
和 basic_ios.tcc
中出现以下错误:
'operator=' is a private member of 'std::basic_streambuf<char>'
由于这是 fstream 库的一部分,显然我做错了什么...
有人能帮忙吗?
<fstream>
而不是<iostream>
。operator=
才是真正的错误。输出窗口应该显示完整的错误信息,包括你复制Mapper
对象的行号。 - Mooing Duck