Я пытаюсь узнать, как сериализовать объекты C++. После прочтения нескольких сообщений здесь неплохо использовать функции сериализации boost
и архивирование с использованием функций загрузки/сохранения. Однако я бы хотел избежать использования библиотеки boost.Сериализовать объект C++, не зная его полей
Концептуально, могу ли я сохранить объект, не зная его полей. Без отражения в C++ единственным способом хранения объекта является знание всех его членов класса.
Может использовать stringstream
и перегружать оператор <<
для преобразования объекта в строку, могу ли я непосредственно сохранить объект.
Спасибо, К.
Нет. На языке без размышлений вы ничего не можете делать с членами, если не знаете, что представляют собой эти участники. –
Кто-то должен знать свои поля, возможно, сам. Вы можете сделать это так, чтобы вызывающему абоненту не нужно было знать поля и что есть одна функция для чтения и записи. Обратите внимание, что сериализация имеет множество тернистых проблем, таких как управление версиями и т. П., Которые делают сомнения в том, что библиотеки одного размера подходят для всех. – Yakk