Added a dummy argument in Private::Equals constructor, so it is not mistakenly used as copy constructor.

This commit is contained in:
Mathew Sutcliffe
2014-12-21 16:57:15 +00:00
parent 4f0bf6d62c
commit 77efea3377

View File

@@ -94,7 +94,7 @@ namespace BlackMisc
template <class T> struct Equals
{
const T m_value;
template <class U> Equals(U &&value) : m_value(std::forward<U>(value)) {}
template <class U> Equals(U &&value, int dummy) : m_value(std::forward<U>(value)) { Q_UNUSED(dummy); }
template <class U> bool operator ()(const U &other) const { return other == m_value; }
};
@@ -170,7 +170,7 @@ namespace BlackMisc
template <class T>
auto Equals(T &&value) -> Private::Equals<typename std::decay<T>::type>
{
return { std::forward<T>(value) };
return { std::forward<T>(value), 0 };
}
} //namespace Predicates