mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 08:45:36 +08:00
refs #434 CPropertyIndexVariantMap: removed operator templates and replaced CVariant comparison operators with a named method, matches().
This commit is contained in:
@@ -178,37 +178,11 @@ namespace BlackMisc
|
||||
//! Equal operator, required if maps are directly compared, not with CValueObject
|
||||
BLACKMISC_EXPORT friend bool operator !=(const CPropertyIndexVariantMap &a, const CPropertyIndexVariantMap &b);
|
||||
|
||||
//! Operator == with CVariant
|
||||
BLACKMISC_EXPORT friend bool operator ==(const CPropertyIndexVariantMap &valueMap, const CVariant &variant);
|
||||
//! True if this map matches the value contained in the variant
|
||||
bool matchesVariant(const CVariant &value) const;
|
||||
|
||||
//! Operator != with CVariant
|
||||
BLACKMISC_EXPORT friend bool operator !=(const CPropertyIndexVariantMap &valueMap, const CVariant &variant);
|
||||
|
||||
//! Operator == with CVariant
|
||||
BLACKMISC_EXPORT friend bool operator ==(const CVariant &variant, const CPropertyIndexVariantMap &valueMap);
|
||||
|
||||
//! Operator != with CVariant
|
||||
BLACKMISC_EXPORT friend bool operator !=(const CVariant &variant, const CPropertyIndexVariantMap &valueMap);
|
||||
|
||||
//! Operator == with CValueObject
|
||||
//! \todo Still needed?
|
||||
template <class T, class = typename std::enable_if<QMetaTypeId<T>::Defined>::type>
|
||||
friend bool operator ==(const CPropertyIndexVariantMap &valueMap, const T &valueObject) { return valueMap == CVariant::from(valueObject); }
|
||||
|
||||
//! Operator != with CValueObject
|
||||
//! \todo Still needed?
|
||||
template <class T, class = typename std::enable_if<QMetaTypeId<T>::Defined>::type>
|
||||
friend bool operator !=(const CPropertyIndexVariantMap &valueMap, const T &valueObject) { return valueMap != CVariant::from(valueObject); }
|
||||
|
||||
//! Operator == with CValueObject
|
||||
//! \todo Still needed?
|
||||
template <class T, class = typename std::enable_if<QMetaTypeId<T>::Defined>::type>
|
||||
friend bool operator ==(const T &valueObject, const CPropertyIndexVariantMap &valueMap) { return valueMap == CVariant::from(valueObject); }
|
||||
|
||||
//! Operator != with CValueObject
|
||||
//! \todo Still needed?
|
||||
template <class T, class = typename std::enable_if<QMetaTypeId<T>::Defined>::type>
|
||||
friend bool operator !=(const T &valueObject, const CPropertyIndexVariantMap &valueMap) { return valueMap != CVariant::from(valueObject); }
|
||||
//! True if this map matches the value
|
||||
template <typename T> bool matches(const T &value) const { return matchesVariant(CVariant::from(value)); }
|
||||
|
||||
//! Map
|
||||
const QMap<CPropertyIndex, CVariant> &map() const { return this->m_values; }
|
||||
@@ -302,6 +276,12 @@ namespace BlackMisc
|
||||
}
|
||||
} // Mixin
|
||||
|
||||
template <class T>
|
||||
bool Predicates::Private::Matches::operator()(const T &value) const
|
||||
{
|
||||
return m_map.matches(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(BlackMisc::CPropertyIndexVariantMap)
|
||||
|
||||
Reference in New Issue
Block a user