Функция шаблона C++ — ошибка компилятора: «нельзя изменить с const char* на int»C++

Программы на C++. Форум разработчиков
Anonymous
Функция шаблона C++ — ошибка компилятора: «нельзя изменить с const char* на int»

Сообщение Anonymous »

У меня указана функция шаблона:

Код: Выделить всё

template 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);
}
...
}
Теперь, когда я хочу проанализировать uid json-объекта, я вызываю метод с целым числом:

Код: Выделить всё

json_object* obj = ...;
int uid = 0;
jsonParse(obj,PARSE_UID,uid);
Но затем возникает ошибка компиляции при назначении в строке:

Код: Выделить всё

value = json_object_getString(val);
Из-за вызова с int компилятор считает, что тип значения переменной — int и json_object_getString(val ) возвращает const char*. Итак, компилятор говорит:

Код: Выделить всё

can not convert from const char* to int
.

Есть ли у вас предложения по решению этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/830 ... st-char-to

Вернуться в «C++»