Context может содержать скалярный объект (int,
double, bool, std::string), массив объектов типа Context, или ассоциативный контейнер пар "ключ: Context" (ключ
- строка), с неограниченной вложенностью. Разрешается использовать только стандартную библиотеку C++ 11
(можно использовать контейнеры из stl) или новее.
Я в основу заложил следующую структуру:
std::variant<int, double, bool, std::string, std::map<std::string, Context>, std::vector<Context>> data;
Но с ней неудобно работать. Может быть есть иные варианты представления данных в этой задаче?
сделайте свободные функции или наследника варианта чтобы "обращаться" удобнее
Variant с 17 плюсов
Обсуждают сегодня