Название: Сравнение с QVariant Отправлено: Igors от Июля 11, 2020, 08:13 Добрый день
Нарисовал так Код Как-то коряво. Требуется сравнить без возможного convert. Как это лучше сделать? Спасибо Название: Re: Сравнение с QVariant Отправлено: __Heaven__ от Июля 11, 2020, 11:37 Код Так работает? Название: Re: Сравнение с QVariant Отправлено: AkonResumed от Июля 12, 2020, 08:28 template<class T>
bool SameValue( const QVariant & v, const T & value ) { return v.canConvert<T>(value) && (v.value<T>() == value); } Название: Re: Сравнение с QVariant Отправлено: Igors от Июля 12, 2020, 09:09 template<class T> canСonvert наоборот, не нужно, требуется float(0) != int(0)bool SameValue( const QVariant & v, const T & value ) { return v.canConvert<T>(value) && (v.value<T>() == value); } Код: return (v.type() == qMetaTypeId<T>()) && (v.value<T>() == value); Правда возникают мелкие непрятности - не могу свитчеваться Код Ну наверно это непобедимо т.к. metaType регистрируется в runtime. Или с новыми стандартами все-таки "можна"? :) Название: Re: Сравнение с QVariant Отправлено: __Heaven__ от Июля 12, 2020, 10:45 Очень похоже, что Qt сам регистрирует QMatrix3x3
Нужно только сравнивать v.userType() с qMetaTypeId<QMatrix3x3>() |