Сопоставление объекта по адресуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Сопоставление объекта по адресу

Сообщение Anonymous »

Меня интересует использование JSON для хранения исходных параметров приложения, написанного на C++. В настоящее время я тестирую библиотеку nlohmann/json для чтения/записи данных из/в файлы JSON.
У меня есть следующая структура классов:

Код: Выделить всё

class Layer {
public:
std::string name;
LayerType type;
...
};

class Network {
public:
std::string name;
std::vector layers;
...
};
и методы сериализации/десериализации находятся здесь:

Код: Выделить всё

void to_json(json& j, const Layer& layer) {
j = json{
{"name", layer.name},
{"type", layer.type}
};
}
void from_json(const json& j, Layer& layer) {
j.at("name").get_to(layer.name);
j.at("type").get_to(layer.type);
}

void to_json(json& j, const Network& network) {
j = json{
{"name", network.name},
{"layers", network.layers}
};
}
void from_json(const json& j, Network& network) {
j.at("name").get_to(network.name);
j.at("layers").get_to(network.layers);
}
Итак, до сих пор с этими классами все в порядке, и их можно использовать для чтения и записи в JSON.
А теперь возникает вопрос . Что если я решу использовать адреса слоев в классе Network?

Код: Выделить всё

class Network {
public:
std::vector layers;
...
};
Как мне переписать методы сериализации/десериализации? Где можно найти аналогичный пример?
SK

Подробнее здесь: https://stackoverflow.com/questions/787 ... by-address
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»