(Де) сериализация QSet с enum с использованием QDataStream
Я использую Qt 4.8.7. я имею enum Color {red, green, blue}
а также QSet<Color>
, Как я должен (де) сериализовать QSet<Color>
с помощью QDataStream
? Десериализация не выполняется с пользовательским типом. Должен ли я вручную создавать сериализацию (цикл по элементам QSet) помимо десериализации? Я имею в виду, что внутренняя реализация сериализации для QSet теоретически может быть изменена разработчиками Qt, поэтому я должен написать два цикла для сериализации / десериализации самостоятельно.
1 ответ
Вы можете использовать следующее приведение для десериализации, чтобы избежать создания ручных циклов:
data_stream >> reinterpret_cast<QSet<qint32>&>(color_set2);