mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 08:45:36 +08:00
refs #247 Enabled equality comparison between CVariant and CValueObject.
This commit is contained in:
@@ -205,6 +205,35 @@ namespace BlackMisc
|
|||||||
const void *data() const { return m_v.data(); }
|
const void *data() const { return m_v.data(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//! Compare stored value of CVariant with any CValueObject derived class.
|
||||||
|
template <class T, class = typename std::enable_if<std::is_base_of<CValueObject, T>::value>::type>
|
||||||
|
bool operator ==(const T &value, const CVariant &variant)
|
||||||
|
{
|
||||||
|
if (variant.canConvert<T>()) { return variant.value<T>() == value; }
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Compare stored value of CVariant with any CValueObject derived class.
|
||||||
|
template <class T, class = typename std::enable_if<std::is_base_of<CValueObject, T>::value>::type>
|
||||||
|
bool operator !=(const T &value, const CVariant &variant)
|
||||||
|
{
|
||||||
|
return !(value == variant);
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Compare stored value of CVariant with any CValueObject derived class.
|
||||||
|
template <class T, class = typename std::enable_if<std::is_base_of<CValueObject, T>::value>::type>
|
||||||
|
bool operator ==(const CVariant &variant, const T &value)
|
||||||
|
{
|
||||||
|
return value == variant;
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Compare stored value of CVariant with any CValueObject derived class.
|
||||||
|
template <class T, class = typename std::enable_if<std::is_base_of<CValueObject, T>::value>::type>
|
||||||
|
bool operator !=(const CVariant &variant, const T &value)
|
||||||
|
{
|
||||||
|
return !(value == variant);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(BlackMisc::CVariant)
|
Q_DECLARE_METATYPE(BlackMisc::CVariant)
|
||||||
|
|||||||
Reference in New Issue
Block a user