John Wellbelove a2da3ed940
Optimise cyclic value (#1607)
* Updated ignore for hard link for CLion

* Initial working version

* Optimised advance template call

* Further optimsed advance

Updated docs and tests

* Moved comparison operators out of the class.

* Implement spaceship operator <=> for No-STL case (#1604)

This was disabled explicitly in recent commit
232c948674cff1b4b72c2d6b3acfa7342d096dd1 to prevent using
the <compare> header from STL.

Now, re-enabling by implementing an ETL version of it in compare.h

* Sponsorship message updates

* Fix duplicated check runs

* Refactored the advance function to fix issues with signed unsigned mod operations.

* clang-format

* Updated documentation for cyclic_value

* Modified code comments

* Fixed a logic issue in advance() where a less than maximum step from the minimum value for a cyclic value covering the full type's range would take the wrong logical path (Step would roll over), although calculating the correct result.

This could be cofusing to someone debugging cyclc_value.

* Added runtime ans static asserts for reverse ordered limts.

* clang-format

* Spelling fix 'fast' -> 'last'

* Code review updates

* clang-format

* Code review updates

* Code review updates

---------

Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
2026-10-09 17:39:04 +01:00
..
binary Issue/add hugo support for documentation (#1449) 2026-06-06 13:12:44 +01:00
blog Various fixes and cleanup (#1507) 2026-07-20 11:19:41 +02:00
callbacks Various fixes and cleanup (#1507) 2026-07-20 11:19:41 +02:00
chrono Various fixes and cleanup (#1507) 2026-07-20 11:19:41 +02:00
codecs Fix code examples in documentation (#1471) 2026-06-23 18:11:17 +01:00
containers Add docs and tutorial for etl::intrusive_avl_tree (#1608) 2026-09-27 09:42:34 +01:00
getting-started Various fixes and cleanup (#1507) 2026-07-20 11:19:41 +02:00
IO Various fixes and cleanup (#1507) 2026-07-20 11:19:41 +02:00
iterators Add missing etl::ranges::distance overload (#1569) 2026-08-26 20:16:54 +01:00
maths Fix code examples in documentation (#1471) 2026-06-23 18:11:17 +01:00
messaging Various fixes and cleanup (#1507) 2026-07-20 11:19:41 +02:00
multi-tasking Documentation updates (#1469) 2026-06-23 18:12:58 +01:00
patterns Fix code examples in documentation (#1471) 2026-06-23 18:11:17 +01:00
pseudo-containers Issue/add hugo support for documentation (#1449) 2026-06-06 13:12:44 +01:00
ranges Add missing etl::ranges::distance overload (#1569) 2026-08-26 20:16:54 +01:00
releases Updated release notes 2026-09-08 20:14:24 +01:00
resourses Issue/add hugo support for documentation (#1449) 2026-06-06 13:12:44 +01:00
source Squashed commit of the following: 2026-07-11 13:02:42 +01:00
state machines Hotfix/documentation updates (#1456) 2026-06-08 08:58:47 +01:00
strings Various cleanup (#1562) 2026-08-22 17:47:16 +02:00
timers Various fixes and cleanup (#1507) 2026-07-20 11:19:41 +02:00
tutorials Add docs and tutorial for etl::intrusive_avl_tree (#1608) 2026-09-27 09:42:34 +01:00
types Add be_uint24_t etc. to unaligned_type.h (#1592) 2026-09-30 08:26:46 +01:00
utilities Optimise cyclic value (#1607) 2026-10-09 17:39:04 +01:00
_index.md Optimise cyclic value (#1607) 2026-10-09 17:39:04 +01:00
about.md Sponsorship message updates 2026-09-12 11:26:53 +01:00
business-and-financial-case-for-commercial-sponsorship.md Updated sponsors pages 2026-09-28 10:38:48 +01:00
Is the ETL free.md Issue/add hugo support for documentation (#1449) 2026-06-06 13:12:44 +01:00
sponsors.md Updated sponsors pages 2026-09-28 10:38:48 +01:00