Ой это не самая хорошая (де)сериализация, на самом деле Она будет работать только для классов,/структур которые содержат простые типа, например int, double или классы, которые также содержат такие типы Но сейчас объясню
сишный ужас
1) объявляется шаблон функции write, который возвращает std::size_t — видимо количество записанных данных в байтах Шаблон задаёт тип T, который будет записываться 2) Запоминается текущее место в потоке вывода в строке 4 3) 5 строка самая сложная reinterpret_cast<const char*>(&value) В С++11 и выше есть разные виды приведения типов. static_cast например проверяет можно ли привести один тип к другому без ошибок. А reinterpret_cast ничего не проверяет и ответственность полностью на программисте. Так вот берётся указатель на твой объект и он приводится к const char* — в данном случае это имеет смысл просто как указатель на последовательность байт. То есть объект представляется как он реально хранится в оперативке. И он записывается в поток вывода. 3) А потом вычисляется количество записанных байт
Обсуждают сегодня