命名空间"命名空间"中没有名为"name"的成员



我一辈子都搞不清为什么会产生这个错误,因为我很确定语法是正确的(显然我错了!)。所以我想我会看看这里是否有人能为我指出这一点。

main.cpp

#include "Object.h"
int main(){
    out = json::readJSON(data_dir + "a2-empty_array_with_empty_object.json", e, debug);
}

Object.h

namespace json{
template<typename T>
    std::string readJSON(std::string jsonFile, T& object, bool debug = false, char delimiter = ',') {}
}

当函数显然在名称空间中时,我基本上得到了这个错误。为什么它将功能称为成员?也许这里还有别的事情。。。

错误:

a2main.cpp:66:21: error: no member named 'readJSON' in namespace 'json'
        out = json::readJSON(data_dir + "a2-cartoons.json", c, debug, '|');

您可能没有正确地包含头文件。

以下代码编译(同时使用clang和gcc)并运行良好的

#include <string>
namespace json
{
    template<typename T>
    std::string readJSON(std::string jsonFile, T& object, bool debug = false, char delimiter = ',') 
    {
       return "Hello"; //This function should return a string
    }
}
int main()
{
    std::string data_dir = "test-";
    int e = 3;
    bool debug = false;
    std::string out = json::readJSON(data_dir + "a2-empty_array_with_empty_object.json", e, debug);
    return 0;
}

我希望这能有所帮助。

#包括

//这将修复错误%100

相关内容

最新更新