Есть ли такие, которые могут, например, обрабатывать Qt-шный QString и прочее типы из сторонних либ, куда не получится встраиваться? Желательно, чтобы был на входе/выходе бинарный формат тоже, а не только XML/JSON и поддержка версий. Не хотелось бы свою криво-костыльную сериализацию велосипедить.
Здравствуйте, XOOIOOX, Вы писали:
XOO>Есть ли такие, которые могут, например, обрабатывать Qt-шный QString и прочее типы из сторонних либ, куда не получится встраиваться? Желательно, чтобы был на входе/выходе бинарный формат тоже, а не только XML/JSON и поддержка версий. Не хотелось бы свою криво-костыльную сериализацию велосипедить.
Здравствуйте, XOOIOOX, Вы писали:
XOO>Есть ли такие, которые могут, например, обрабатывать Qt-шный QString и прочее типы из сторонних либ, куда не получится встраиваться? Желательно, чтобы был на входе/выходе бинарный формат тоже, а не только XML/JSON и поддержка версий. Не хотелось бы свою криво-костыльную сериализацию велосипедить.
Да они вроде практически все неинтрузивно умеют.. В комплекте обычно идет поддержка набора наиболее часто используемых типов, а прикрутить свой тип — пара строк. Классика — boost.serialization. Для QString придется дописать адаптер типа такого
namespace boost { namespace serialization {
template<class Archive>
void save(Archive & ar, const QString & t, unsigned int version)
{
ar << t.toStdString();//ну а если через std::string не устроит - можно маны покурить и более эффективно сделать. Это -лишь пример.
}
template<class Archive>
void load(Archive & ar, QString & t, unsigned int version)
{
std::string tmp;
ar >> tmp;
t = QString::fromStdString(tmp);
}
}}
бинарный, xml, текстовый форматы можно. Json вроде нету из коробки.
. Заявляет высокую скорость, может в бинарь, json, текст. Версионирования вроде нету. Одно время он собирался вделать поддержку Qt-шных контейнеров, но, видать, руки не дошли. Самому QString можно прикрутить по примерно такой же схеме что и для буста.
Здравствуйте, XOOIOOX, Вы писали:
XOO>Есть ли такие, которые могут, например, обрабатывать Qt-шный QString и прочее типы из сторонних либ, куда не получится встраиваться? Желательно, чтобы был на входе/выходе бинарный формат тоже, а не только XML/JSON и поддержка версий. Не хотелось бы свою криво-костыльную сериализацию велосипедить.
Qt кстати тоже имеет расширяемый бинарный сериализатор,
просто нужно определить operator<< для QDataStream.
Здравствуйте, XOOIOOX, Вы писали:
K>>А чего никсановский YAS не взял?
XOO>Мануала нема. Версионирование отсутствует. Не понятно, есть ли раздельные save/load.