@@ -64,7 +64,7 @@ class IterInterface
6464 IterInterface (IterInterface&&) = default ;
6565 IterInterface& operator =(IterInterface&&) = default ;
6666
67- [[nodiscard]] auto advanceBy (size_t amount) -> Derived ;
67+ auto advanceBy (size_t amount) -> void ;
6868
6969 template <class Functor >
7070 requires AnyFunctor<T, Functor>
@@ -183,14 +183,13 @@ class IterInterface
183183} // namespace rusty_iterators::interface
184184
185185template <class T , class Derived >
186- auto rusty_iterators::interface::IterInterface<T, Derived>::advanceBy(size_t amount ) -> Derived
186+ auto rusty_iterators::interface::IterInterface<T, Derived>::advanceBy(size_t n ) -> void
187187{
188- for (size_t i = 0 ; i < amount; i++ )
188+ for (size_t i = 0 ; i < n; ++i )
189189 {
190190 [[unlikely]] if (!self ().next ().has_value ())
191191 break ;
192192 }
193- return std::move (self ());
194193}
195194
196195template <class T , class Derived >
@@ -222,8 +221,7 @@ auto rusty_iterators::interface::IterInterface<T, Derived>::collect() -> std::ve
222221 auto size = sizeHintChecked ();
223222
224223 collection.reserve (size);
225-
226- forEach ([&collection](auto && x) { collection.push_back (std::move (x)); });
224+ self ().forEach ([&collection](auto && x) { collection.push_back (std::move (x)); });
227225
228226 return std::move (collection);
229227}
@@ -233,7 +231,7 @@ auto rusty_iterators::interface::IterInterface<T, Derived>::count() -> size_t
233231{
234232 size_t count = 0 ;
235233
236- forEach ([&count](auto && _) { count += 1 ; });
234+ self (). forEach ([&count](auto && _) { count += 1 ; });
237235
238236 return count;
239237}
@@ -404,9 +402,10 @@ auto rusty_iterators::interface::IterInterface<T, Derived>::neBy(Other&& it, Fun
404402}
405403
406404template <class T , class Derived >
407- auto rusty_iterators::interface::IterInterface<T, Derived>::nth(size_t element ) -> std::optional<T>
405+ auto rusty_iterators::interface::IterInterface<T, Derived>::nth(size_t n ) -> std::optional<T>
408406{
409- return self ().advanceBy (element).next ();
407+ self ().advanceBy (n);
408+ return self ().next ();
410409}
411410
412411template <class T , class Derived >
0 commit comments