Вот забавная маленькая головоломка (не для меня, не думайте, я старался на это целую вечность). Вот фрагмент кода: < /p> [code]#include #include #include #include #include #include #include
class Node { public: using value_type = std::variant< std::monostate, bool, double, std::string, std::vector, std::map >;
// Initializer list constructors - attempting to mimic nlohmann/json behavior Node(std::initializer_list init) { std::map m; for (const auto& p : init) { m[p.first] = p.second; } data = std::move(m); }
Node(std::initializer_list init) { data = std::vector(init); }
// For demonstration void print() const { if (std::holds_alternative(data)) { std::cout