diff --git a/src/blackmisc/variant.h b/src/blackmisc/variant.h index 9e124db4f..b51d6b14b 100644 --- a/src/blackmisc/variant.h +++ b/src/blackmisc/variant.h @@ -205,6 +205,35 @@ namespace BlackMisc const void *data() const { return m_v.data(); } }; + //! Compare stored value of CVariant with any CValueObject derived class. + template ::value>::type> + bool operator ==(const T &value, const CVariant &variant) + { + if (variant.canConvert()) { return variant.value() == value; } + return false; + } + + //! Compare stored value of CVariant with any CValueObject derived class. + template ::value>::type> + bool operator !=(const T &value, const CVariant &variant) + { + return !(value == variant); + } + + //! Compare stored value of CVariant with any CValueObject derived class. + template ::value>::type> + bool operator ==(const CVariant &variant, const T &value) + { + return value == variant; + } + + //! Compare stored value of CVariant with any CValueObject derived class. + template ::value>::type> + bool operator !=(const CVariant &variant, const T &value) + { + return !(value == variant); + } + } // namespace Q_DECLARE_METATYPE(BlackMisc::CVariant)