std::variant внутрянняя цикличность(JSON)

162
04 августа 2021, 01:00

Захотелось мне парсер сделать для JSON.

using JsonData = std::variant<vector<JsonData>, std::unordered_map<string, JsonData>, double, bool, string>;

Но так он не ест.

Как можно заставить его такое съесть? Только самому юнион небезопасный писать?

Answer 1

Можно сделать вот так:

struct JsonData
{
    using data_t = std::variant<vector<JsonData>, std::unordered_map<string, JsonData>, double, bool, string>;
    data_t data;
};

(using - просто для удобства, можно обойтись без него.)

READ ALSO
Функция не возвращает ссылку

Функция не возвращает ссылку

Есть следующая функция, она должна возвращать ссылку на значение ключа, если ключ такой существует в словаре, иначе выбрасывать исключение,...

158
Подключение файлов в C++

Подключение файлов в C++

Иногда работаю с IDE на Андроиде (в основном Dcoder)Как можно подключить (и можно ли вообще) заголовочный либо любой другой файл средствами языка,...

161
Очередь на 6ти стеках

Очередь на 6ти стеках

хочу написать очередь (с нуля на с++) используя 6 стеков(так как прочитал что ее можно написать так, чтобы любая операция выполнялась за О(1))...

87