Why am I getting this ifstream error?

C++Compiler ErrorsFstreamIfstream

C++ Problem Overview


Implicit instantiation of undefined template '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

I've even tried putting std::ifstream and it still doesn't work.

When I #include <fstream> instead of #include <iostream>, I get these errors in fstream.tcc and basic_ios.tcc:

'operator=' is a private member of 'std::basic_streambuf<char>'

And since that's part of the fstream library, obviously something i'm doing is wrong...

Anyone able to help?

C++ Solutions


Solution 1 - C++

You're missing

#include <fstream>

and you probably assign somthing to inFile which is not allowed.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionOghmaOsirisView Question on Stackoverflow
Solution 1 - C++Mika FischerView Answer on Stackoverflow