diff --git a/src/entt/resource/cache.hpp b/src/entt/resource/cache.hpp index 9e806b7a2..d16b256ae 100644 --- a/src/entt/resource/cache.hpp +++ b/src/entt/resource/cache.hpp @@ -1,6 +1,7 @@ #ifndef ENTT_RESOURCE_RESOURCE_CACHE_HPP #define ENTT_RESOURCE_RESOURCE_CACHE_HPP +#include #include #include #include @@ -92,49 +93,25 @@ public: return operator*(); } - template - friend constexpr std::ptrdiff_t operator-(const resource_cache_iterator &, const resource_cache_iterator &) noexcept; + template + [[nodiscard]] constexpr std::ptrdiff_t operator-(const resource_cache_iterator &other) const noexcept { + return it - other.it; + } - template - friend constexpr bool operator==(const resource_cache_iterator &, const resource_cache_iterator &) noexcept; + template + [[nodiscard]] constexpr bool operator==(const resource_cache_iterator &other) const noexcept { + return it == other.it; + } - template - friend constexpr bool operator<(const resource_cache_iterator &, const resource_cache_iterator &) noexcept; + template + [[nodiscard]] constexpr auto operator<=>(const resource_cache_iterator &other) const noexcept { + return it <=> other.it; + } private: It it; }; -template -[[nodiscard]] constexpr std::ptrdiff_t operator-(const resource_cache_iterator &lhs, const resource_cache_iterator &rhs) noexcept { - return lhs.it - rhs.it; -} - -template -[[nodiscard]] constexpr bool operator==(const resource_cache_iterator &lhs, const resource_cache_iterator &rhs) noexcept { - return lhs.it == rhs.it; -} - -template -[[nodiscard]] constexpr bool operator<(const resource_cache_iterator &lhs, const resource_cache_iterator &rhs) noexcept { - return lhs.it < rhs.it; -} - -template -[[nodiscard]] constexpr bool operator>(const resource_cache_iterator &lhs, const resource_cache_iterator &rhs) noexcept { - return rhs < lhs; -} - -template -[[nodiscard]] constexpr bool operator<=(const resource_cache_iterator &lhs, const resource_cache_iterator &rhs) noexcept { - return !(lhs > rhs); -} - -template -[[nodiscard]] constexpr bool operator>=(const resource_cache_iterator &lhs, const resource_cache_iterator &rhs) noexcept { - return !(lhs < rhs); -} - } // namespace internal /*! @endcond */