«Obj_type» не был объявлен в этой области, примечание: предложенная альтернатива: enum Value_type

Я использую JSON Spirit для анализа и генерации JSON.

Я не могу использовать using namespace json_spirit потому что другая библиотека использует конфликтующие имена.

Я пытаюсь определить тип как указано здесь прочитанного сообщения с

if(message.type() == obj_type)

но компилятор сообщает

error: ‘obj_type’ was not declared in this scope
if(stamper_message.type() == obj_type){
^
note: suggested alternative:
In file included from /usr/local/include/json_spirit.h:13:0:
/usr/local/include/json_spirit_value.h:32:22: note:   ‘obj_type’
enum Value_type{ obj_type, array_type, str_type, bool_type, int_type, real_type, null_type };

Я также добавил эту строку

using json_spirit::Value_type;

и эта строка

typedef json_spirit::Value_type Value_type;

но это не помогает

Я прошу прощения за такой простой вопрос, но я не могу найти решение, так как это можно enum быть импортированы для использования таким образом?

1

Решение

От очень старый вопрос&:

using json_spirit::Value_type;
Value_type obj_type = Value_type::obj_type;

Я буду удалять, если кто-то публикует что-то лучшее или способ объявить всех членов enum одной строкой.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]