* Add more constexpr to ctors
* Adjust operator!=() in fixed_iterator.h
Instead of taking an iterator by reference, take it by value as
done in the other operators and overloads.
* Initialize move_iterator() current member
Prevent indeterminate values
* Fix fixed_iterator::operator* return type
fixed_iterator::operator* returned value_type by value, so writes like *it = ...
modified a temporary rather than the underlying location. This broke the
iterator’s intended use (e.g., writing to a fixed register/memory location).
Now returning iterator_traits<TIterator>::reference instead (const and
non-const overloads).
* Fixed move_iterator::operator+= and operator-= return type
move_iterator::operator+= / operator-= returned by value, but RandomAccessIterator
requirements (and std::move_iterator) expect these to return move_iterator&.
Returning by value also added an unnecessary copy and could break generic code
expecting reference semantics.
* Fix compilation with -Wsign-conversion
For tests with GCC and Clang
Fixes https://github.com/ETLCPP/etl/issues/632
* Fix support of negative Id in type_lookup.h: type_from_id
* Fix element access arithmetic in atomic_gcc_sync.h fetch_add/fetch_sub
* Fix rounded_integral_division.h: divide_round_half_odd(): direction is always 1
* Add ranges
* Print test names at test time (#1343)
* Fix conflit commit errors
* Cast return value of operator* to value_type
Fixed warning on VS2022
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>