Функция шаблона 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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