Issue #15 Added CVariant::matches()

If the contained object type has a matches() method, CVariant::matches()
will call that method and return its result.
(This is a utility to allow using CVariant to represent an event subscription.)
This commit is contained in:
Mat Sutcliffe
2019-02-26 01:51:21 +00:00
parent 8de217fbab
commit 073f1549a2
7 changed files with 75 additions and 1 deletions

View File

@@ -193,7 +193,8 @@ namespace BlackMisc
bool matchesVariant(const CVariant &value) const;
//! True if this map matches the value
template <typename T> bool matches(const T &value) const { return matchesVariant(CVariant::from(value)); }
template <typename T, typename = std::enable_if_t<!std::is_same<T, CVariant>::value>>
bool matches(const T &value) const { return matchesVariant(CVariant::from(value)); }
//! Map
const QMap<CPropertyIndex, CVariant> &map() const { return m_values; }