50 votes

Pourquoi est-ce que j'obtiens cette erreur ifstream ?

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

J'ai même essayé de mettre std::ifstream et cela ne fonctionne toujours pas.

Lorsque je #include <fstream> au lieu de #include <iostream> , j'obtiens ces erreurs dans fstream.tcc et basic_ios.tcc :

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

Et comme cela fait partie de la bibliothèque fstream, il est évident que quelque chose que je fais est mal...

Quelqu'un peut-il aider?

118voto

Mika Fischer Points 939

Tu manques

 #include <fstream>

et vous attribuez probablement quelque chose à inFile qui n'est pas autorisé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X