web-dev-qa-db-ja.com

ヘッダーファイルでの宣言されていない識別子の使用(Clang)

IO.cppファイルにあるファイルの内容を読み取る関数を作成しています。

#include "IO.h"
#include <iostream>
#include <fstream>
IO::IO()
{
    //ctor
}

void IO::readFile(std::string fileName)
{
    std::ofstream inputFile;
    inputFile.open(FileName);
    inputFile >> fileName.toStdString;
    inputFile.close();
    std::cout << fileName;
}

ヘッダーファイルIO.hを使用します。

#ifndef IO_H
#define IO_H


class IO
{
    public:
        IO();
        void readFile(std::string inputFile);
    protected:
    private:
};

#endif // IO_H

しかし、私はClangから次のようなエラーを受け取ります

include/IO.h | 9 |エラー:宣言されていない識別子 'std'の使用|

そして、私はそれを解決する方法を理解することができません。

13
Axmill

ヘッダー(特にvoid readFile(std::string inputFile);行)を解析するとき、コンパイラーはstd名前空間が存在することを認識しません。その名前空間内に存在するstringははるかに少なくなります。

#include <string>ヘッダー内。

23
Luchian Grigore