Skip to content

Commit 7fbf086

Browse files
authored
Fix: Postfix operators for member/candidate iterators in index_gt (#718)
1 parent 6b69e95 commit 7fbf086

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

include/usearch/index.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,8 +2031,8 @@ class index_gt {
20312031
friend inline vector_key_t get_key(member_iterator_gt const& it) noexcept { return it.key(); }
20322032

20332033
// clang-format off
2034-
member_iterator_gt operator++(int) noexcept { return member_iterator_gt(index_, static_cast<compressed_slot_t>(static_cast<std::size_t>(slot_) + 1)); }
2035-
member_iterator_gt operator--(int) noexcept { return member_iterator_gt(index_, static_cast<compressed_slot_t>(static_cast<std::size_t>(slot_) - 1)); }
2034+
member_iterator_gt operator++(int) noexcept { member_iterator_gt old(index_, slot_); ++(*this); return old; }
2035+
member_iterator_gt operator--(int) noexcept { member_iterator_gt old(index_, slot_); --(*this); return old; }
20362036
member_iterator_gt operator+(difference_type d) noexcept { return member_iterator_gt(index_, static_cast<compressed_slot_t>(static_cast<std::size_t>(slot_) + d)); }
20372037
member_iterator_gt operator-(difference_type d) noexcept { return member_iterator_gt(index_, static_cast<compressed_slot_t>(static_cast<std::size_t>(slot_) - d)); }
20382038
member_iterator_gt& operator++() noexcept { slot_ = static_cast<compressed_slot_t>(static_cast<std::size_t>(slot_) + 1); return *this; }
@@ -3962,7 +3962,9 @@ class index_gt {
39623962
std::size_t progress) noexcept
39633963
: index_(index), neighbors_(neighbors), visits_(visits), current_(progress) {}
39643964
candidates_iterator_t operator++(int) noexcept {
3965-
return candidates_iterator_t(index_, neighbors_, visits_, current_ + 1).skip_missing();
3965+
candidates_iterator_t old(index_, neighbors_, visits_, current_);
3966+
++(*this);
3967+
return old;
39663968
}
39673969
candidates_iterator_t& operator++() noexcept {
39683970
++current_;

0 commit comments

Comments
 (0)