diff --git a/libs/libvtrutil/src/vtr_strong_id_range.h b/libs/libvtrutil/src/vtr_strong_id_range.h index e9fd938f3d6..f22df41f67e 100644 --- a/libs/libvtrutil/src/vtr_strong_id_range.h +++ b/libs/libvtrutil/src/vtr_strong_id_range.h @@ -88,61 +88,59 @@ class StrongIdIterator { return StrongId(size_t(id_) + offset); } - ///@brief + operator - template - friend StrongIdIterator operator+( - const StrongIdIterator& lhs, - ssize_t n) { - StrongIdIterator ret = lhs; - ret += n; - return ret; - } - - ///@brief - operator - template - friend StrongIdIterator operator-( - const StrongIdIterator& lhs, - ssize_t n) { - StrongIdIterator ret = lhs; - ret -= n; - return ret; - } - ///@brief ~ operator template - friend ssize_t operator-( - const StrongIdIterator& lhs, - const StrongIdIterator& rhs) { - VTR_ASSERT_SAFE(bool(lhs.id_)); - VTR_ASSERT_SAFE(bool(rhs.id_)); - - ssize_t ret = size_t(lhs.id_); - ret -= size_t(rhs.id_); + ssize_t operator-(const StrongIdIterator& other) const { + VTR_ASSERT_SAFE(bool(id_)); + VTR_ASSERT_SAFE(bool(other.id_)); + + ssize_t ret = size_t(id_); + ret -= size_t(other.id_); return ret; } ///@brief == operator template - friend bool operator==(const StrongIdIterator& lhs, const StrongIdIterator& rhs) { - return lhs.id_ == rhs.id_; + bool operator==(const StrongIdIterator& other) const { + return id_ == other.id_; } ///@brief != operator template - friend bool operator!=(const StrongIdIterator& lhs, const StrongIdIterator& rhs) { - return lhs.id_ != rhs.id_; + bool operator!=(const StrongIdIterator& other) const { + return id_ != other.id_; } ///@brief < operator template - friend bool operator<(const StrongIdIterator& lhs, const StrongIdIterator& rhs) { - return lhs.id_ < rhs.id_; + bool operator<(const StrongIdIterator& other) const { + return id_ < other.id_; } private: StrongId id_; }; +///@brief + operator +template +inline StrongIdIterator operator+( + const StrongIdIterator& lhs, + ssize_t n) { + StrongIdIterator ret = lhs; + ret += n; + return ret; +} + +///@brief - operator +template +inline StrongIdIterator operator-( + const StrongIdIterator& lhs, + ssize_t n) { + StrongIdIterator ret = lhs; + ret -= n; + return ret; +} + /** * @brief StrongIdRange class *