зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1610070 - Part 1: Allow comparison of UniquePtr<T> and T*. r=froydnj
This allows us to compare a `UniquePtr` with it's raw pointer type. This allows `nsTArray`'s default comparator to function properly and lets us find/remove items from an nsTArray<UniquePtr<T>> with just a raw pointer. Differential Revision: https://phabricator.services.mozilla.com/D60339 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
9ad088b041
Коммит
1f1fb3adf6
|
@ -513,6 +513,26 @@ bool operator!=(const UniquePtr<T, D>& aX, const UniquePtr<U, E>& aY) {
|
|||
return aX.get() != aY.get();
|
||||
}
|
||||
|
||||
template <typename T, class D>
|
||||
bool operator==(const UniquePtr<T, D>& aX, const T* aY) {
|
||||
return aX.get() == aY;
|
||||
}
|
||||
|
||||
template <typename T, class D>
|
||||
bool operator==(const T* aY, const UniquePtr<T, D>& aX) {
|
||||
return aY == aX.get();
|
||||
}
|
||||
|
||||
template <typename T, class D>
|
||||
bool operator!=(const UniquePtr<T, D>& aX, const T* aY) {
|
||||
return aX.get() != aY;
|
||||
}
|
||||
|
||||
template <typename T, class D>
|
||||
bool operator!=(const T* aY, const UniquePtr<T, D>& aX) {
|
||||
return aY != aX.get();
|
||||
}
|
||||
|
||||
template <typename T, class D>
|
||||
bool operator==(const UniquePtr<T, D>& aX, decltype(nullptr)) {
|
||||
return !aX;
|
||||
|
|
Загрузка…
Ссылка в новой задаче