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