2014-11-09 83 views
0

我不能爲我的生活弄清楚爲什麼會產生這個錯誤,因爲我敢肯定語法是正確的(顯然我錯了!)。所以我想我會看看這裏有沒有人可以爲我指出。名稱空間'名稱空間'中沒有名爲'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, '|'); 
+0

請確保你已包含'#包含'適當的文件。 – 0x499602D2 2014-11-09 03:11:14

+0

我是,我已經雙重和三重檢查。 – Kris 2014-11-09 03:13:10

+0

您是否嘗試過對模板進行排位,例如readJson ?我的第一個預感是模板問題。 – 2014-11-09 03:19:26

回答

2

你可能不正確,包括頭文件。

下面的代碼編譯(既鐺和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; 
} 

我希望這有助於。

相關問題