Здравствуйте, у меня возникла такая проблема:
Я разработал некоторый класс для хранения данных, зарегистрировал его в мета-объектной системе макросом q_declare_metatype(), определил потоковые операторы <</>> и зарегистрировал их с помощью qRegisterMetaTypeStreamOperators().
После этого я попытался получить свой класс из объекта QSettings и заметил следующую вещь:
вызов
MyClass c = qvariant_cast<MyClass>(settings.value("key"))
приводит к ошибке segmentation fault при вызове функции
void QMetaType::destroy(int type, void *data)
Если же выполнить нечто вроде
QVariant value = settings.value("key");
MyClass c = qvariant_cast<MyClass>(value);
то ошибка не возникает.
В чем здесь дело?