@@ -88,61 +88,59 @@ class StrongIdIterator {
88
88
return StrongId (size_t (id_) + offset);
89
89
}
90
90
91
- // /@brief + operator
92
- template <typename IdType>
93
- friend StrongIdIterator<IdType> operator +(
94
- const StrongIdIterator<IdType>& lhs,
95
- ssize_t n) {
96
- StrongIdIterator ret = lhs;
97
- ret += n;
98
- return ret;
99
- }
100
-
101
- // /@brief - operator
102
- template <typename IdType>
103
- friend StrongIdIterator<IdType> operator -(
104
- const StrongIdIterator<IdType>& lhs,
105
- ssize_t n) {
106
- StrongIdIterator ret = lhs;
107
- ret -= n;
108
- return ret;
109
- }
110
-
111
91
// /@brief ~ operator
112
92
template <typename IdType>
113
- friend ssize_t operator -(
114
- const StrongIdIterator<IdType>& lhs,
115
- const StrongIdIterator<IdType>& rhs) {
116
- VTR_ASSERT_SAFE (bool (lhs.id_ ));
117
- VTR_ASSERT_SAFE (bool (rhs.id_ ));
118
-
119
- ssize_t ret = size_t (lhs.id_ );
120
- ret -= size_t (rhs.id_ );
93
+ ssize_t operator -(const StrongIdIterator<IdType>& other) const {
94
+ VTR_ASSERT_SAFE (bool (id_));
95
+ VTR_ASSERT_SAFE (bool (other.id_ ));
96
+
97
+ ssize_t ret = size_t (id_);
98
+ ret -= size_t (other.id_ );
121
99
return ret;
122
100
}
123
101
124
102
// /@brief == operator
125
103
template <typename IdType>
126
- friend bool operator ==(const StrongIdIterator<IdType>& lhs, const StrongIdIterator<IdType>& rhs) {
127
- return lhs. id_ == rhs .id_ ;
104
+ bool operator ==(const StrongIdIterator<IdType>& other) const {
105
+ return id_ == other .id_ ;
128
106
}
129
107
130
108
// /@brief != operator
131
109
template <typename IdType>
132
- friend bool operator !=(const StrongIdIterator<IdType>& lhs, const StrongIdIterator<IdType>& rhs) {
133
- return lhs. id_ != rhs .id_ ;
110
+ bool operator !=(const StrongIdIterator<IdType>& other) const {
111
+ return id_ != other .id_ ;
134
112
}
135
113
136
114
// /@brief < operator
137
115
template <typename IdType>
138
- friend bool operator <(const StrongIdIterator<IdType>& lhs, const StrongIdIterator<IdType>& rhs) {
139
- return lhs. id_ < rhs .id_ ;
116
+ bool operator <(const StrongIdIterator<IdType>& other) const {
117
+ return id_ < other .id_ ;
140
118
}
141
119
142
120
private:
143
121
StrongId id_;
144
122
};
145
123
124
+ // /@brief + operator
125
+ template <typename IdType>
126
+ inline StrongIdIterator<IdType> operator +(
127
+ const StrongIdIterator<IdType>& lhs,
128
+ ssize_t n) {
129
+ StrongIdIterator ret = lhs;
130
+ ret += n;
131
+ return ret;
132
+ }
133
+
134
+ // /@brief - operator
135
+ template <typename IdType>
136
+ inline StrongIdIterator<IdType> operator -(
137
+ const StrongIdIterator<IdType>& lhs,
138
+ ssize_t n) {
139
+ StrongIdIterator ret = lhs;
140
+ ret -= n;
141
+ return ret;
142
+ }
143
+
146
144
/* *
147
145
* @brief StrongIdRange class
148
146
*
0 commit comments