可以借助json实现map和struct的互转:文章来源地址https://www.toymoban.com/news/detail-680628.html
#include <iostream>
#include <string>
#include <variant>
#include <nlohmann/json.hpp>
using namespace std;
using json = nlohmann::json;
using VDdata = variant<int, string>;
using MData = map<string, VDdata>;
namespace nlohmann {
template <typename T, typename... Ts>
void variant_from_json(const nlohmann::json &j, std::variant<Ts...> &data) {
try {
data = j.get<T>();
} catch (...) {
}
}
template <typename... Ts>
struct adl_serializer<std::variant<Ts...>>
{
static void to_json(nlohmann::json &j, const std::variant<Ts...> &data) {
std::visit([&j](const auto &v) { j = v; }, data);
}
static void from_json(const nlohmann::json &j, std::variant<Ts...> &data) {
(variant_from_json<Ts>(j, data), ...);
}
};
};
template<cl
文章来源:https://www.toymoban.com/news/detail-680628.html
到了这里,关于nlohmann json:实现map和struct的互转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!