Implicit instantiation of undefined template 'std::basic_ifstream<char,std::char_traits<char>>'
Perché sto ricevendo questo errore ifstream?
#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
Ho anche provato a mettere std::ifstream
e ancora non funziona.
Quando ho #include <fstream>
invece di #include <iostream>
, ottengo questi errori in fstream.tcc
e basic_ios.tcc
:
'operator=' is a private member of 'std::basic_streambuf<char>'
E poiché questo fa parte della biblioteca fstream, ovviamente qualcosa che sto facendo è sbagliato ...
Chiunque può aiutare?
Si dovrebbe avere "" invece di "" L'operatore = "è l'errore reale. La finestra di output dovrebbe contenere il resto del messaggio di errore, incluso il numero di riga in cui si effettua una copia di un oggetto 'Mapper'. –
È necessario mostrare il codice che causa il secondo errore. –