| template<class T1, class D1, class T2, class D2>
bool operator==(const unique_ptr<T1, D1>& a, const unique_ptr<T2, D2>& b);
template <class T, class Deleter>
bool operator==(const unique_ptr<T, Deleter>& a, nullptr_t) noexcept;
template <class T, class Deleter>
bool operator==(nullptr_t, const unique_ptr<T, Deleter>& b) noexcept;
template<class T1, class D1, class T2, class D2>
bool operator!=(const unique_ptr<T1, D1>& a, const unique_ptr<T2, D2>& b);
template <class T, class Deleter>
bool operator!=(const unique_ptr<T, Deleter>& a, nullptr_t) noexcept;
template <class T, class Deleter>
bool operator!=(nullptr_t, const unique_ptr<T, Deleter>& b) noexcept;
template<class T1, class D1, class T2, class D2>
bool operator<(const unique_ptr<T1, D1>& a, const unique_ptr<T2, D2>& b);
template <class T, class Deleter>
bool operator<(const unique_ptr<T, Deleter>& a, nullptr_t) noexcept;
template <class T, class Deleter>
bool operator<(nullptr_t, const unique_ptr<T, Deleter>& b) noexcept;
template<class T1, class D1, class T2, class D2>
bool operator<=(const unique_ptr<T1, D1>& a, const unique_ptr<T2, D2>& b);
template <class T, class Deleter>
bool operator<=(const unique_ptr<T, Deleter>& a, nullptr_t) noexcept;
template <class T, class Deleter>
bool operator<=(nullptr_t, const unique_ptr<T, Deleter>& b) noexcept;
template<class T1, class D1, class T2, class D2>
bool operator>(const unique_ptr<T1, D1>& a, const unique_ptr<T2, D2>& b);
template <class T, class Deleter>
bool operator>(const unique_ptr<T, Deleter>& a, nullptr_t) noexcept;
template <class T, class Deleter>
bool operator>(nullptr_t, const unique_ptr<T, Deleter>& b) noexcept;
template<class T1, class D1, class T2, class D2>
bool operator>=(const unique_ptr<T1, D1>& a, const unique_ptr<T2, D2>& b);
template <class T, class Deleter>
bool operator>=(const unique_ptr<T, Deleter>& a, nullptr_t) noexcept;
template <class T, class Deleter>
bool operator>=(nullptr_t, const unique_ptr<T, Deleter>& b) noexcept;
|