etl/include
taltenbach 9d92081d1e
Fix operator[] for const iota_view and repeat_view (#1525)
* Fix missing operator[] for iota_iterator and repeat_iterator

The iterators of etl::ranges::iota_view and etl::ranges::repeat_view are
random access iterators but they did not define any operator[]. This did
not cause any issues when using mutable views since the implementation
of operator[] provided by view_interface for random access views was
hidden by another implementation using etl::advance. However, this was
not the case for 'operator[] const', which resulted in a build error
when using constant views.

This commit ensures that the operator[] implementation for random access
views is no longer hidden by another implementation in view_interface,
and adds operator[] to both iterators.

* Fix sign conversion error on operator[] for some views

The operator[] definitions provided by view_interface were accepting
size_t arguments. This was causing a compile-time warning
(Wsign-conversion) for the random access views using an iterator with a
signed difference type. This has been observed on etl::ranges::iota_view
and etl::ranges::repeat_view.

No test is added since the tests provided by the previous commit already
produce the warning, causing a build error.

---------

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2026-08-04 09:01:42 +02:00
..
etl Fix operator[] for const iota_view and repeat_view (#1525) 2026-08-04 09:01:42 +02:00