2012-01-25 26 views
24

Implicit instantiation of undefined template 'std::basic_ifstream<char,std::char_traits<char>>'なぜこの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 

私もstd::ifstreamを入れてみました、それはまだ動作しません。

I #include <fstream>の代わり#include <iostream>、私はfstream.tccbasic_ios.tccにこれらのエラーを取得:

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

そして、それは、fstreamのライブラリの一部だから、明らかに私がやっている何かが間違っている...

誰でも手伝っていただけますか?

+1

」の代わりに「」が必要です。「operator =」は実際のエラーです。出力ウィンドウには、 'Mapper'オブジェクトのコピーを作成する行番号を含む残りのエラーメッセージが含まれているはずです。 –

+0

2番目のエラーの原因となるコードを表示する必要があります。 –

答えて

58

あなたは

#include <fstream> 

を逃していると、あなたはおそらく許可されていない​​に気にいらを割り当てます。

+0

何らかの理由で私の質問が既にfstreamにインポートされた部分を切り捨てました – OghmaOsiris

+0

あなたはそれを編集することができます。そして、他の人がコンパイルしようとする最小限の例を提供するのに役立ちます。 –

+2

私は膝の中で矢を取るまで 'ifstream'が' 'に含まれていると思います。 – acgtyrant

関連する問題