我有指定的模板函數:C++模板函數 - 編譯器錯誤:「無法從爲const char *更改爲int」
template<class T> void jsonParse(json_object* jobj, eParseWhat parseWhat, T &value) {
...
if(parseWhat == PARSE_UID) {
value = json_object_getInt(val);
}
if(parseWhar == PARSE_EMAIL) {
value = json_object_getString(val);
}
...
}
現在,當我想解析JSON對象的uid
我調用該方法與int
:
json_object* obj = ...;
int uid = 0;
jsonParse(obj,PARSE_UID,uid);
但隨後在轉讓在管線發生編譯錯誤:
value = json_object_getString(val);
由於用int
進行調用,編譯器認爲變量value
的類型是int
而json_object_getString(val)
返回的是const char*
。所以編譯器說: can not convert from const char* to int
。
你有什麼建議可以解決這個問題嗎?
價值如何定義?它是參數列表中的T&value嗎? –