2417 Commits

Author SHA1 Message Date
John Wellbelove
07894526e0 Added test_hfsm_recurse_to_inner_state_on_start.cpp to project 2025-10-11 11:01:35 +01:00
John Wellbelove
047071211c Merge branch 'pull-request/#1012-Implement-Signal' into development
# Conflicts:
#	test/vs2022/etl.vcxproj.filters
2025-10-11 10:51:19 +01:00
John Wellbelove
11c509bb44 Merge branch 'pull-request/#1196-Added-back-in-support-for-populating-non-8-bit-strings-with-8-bit-data' into development 2025-10-11 10:47:46 +01:00
John Wellbelove
6ab05a5d7e Rebased on development 2025-10-08 10:26:28 +01:00
mike919192
99a33535d3 Vector checks (#1193)
* Add checks to vector and fix test failures

* Add tests to vector

* Add tests to external buffer and non trivial

* All tests should be implemented

* Add checks to vector_pointer and vector_pointer_ext

* Get bad iterators from a second vector
2025-10-08 10:25:42 +01:00
John Wellbelove
a25f195637 Renamed ETL_ASSERT_UNTYPED to ETL_ASSERT_GENERIC 2025-10-08 10:25:41 +01:00
John Wellbelove
9c3e786509 Added missing CI scripts to the project 2025-10-08 10:25:18 +01:00
John Wellbelove
a2415cc30f Removed #define ETL_DEBUG as this is a project define 2025-10-08 10:25:00 +01:00
mike919192
f2c33a4466 Debug assert (#1175)
* debug assert POC

* Swith to ETL_CONSTEXPR14

* Finish TODO checks

* First and last can be equal

* Add ETL_DEBUG_THROW_EXCEPTIONS

* Try allowing c++11 constexpr

* Add macro for throwing from c++11 constexpr

* Remove braces

* Add extra asserts in size_t overload functions

* Fill out debug asserts

* Line up comments
2025-10-08 10:24:59 +01:00
John Wellbelove
8dff499500 Added insert/remove tests 2025-10-08 10:23:32 +01:00
John Wellbelove
21d7ebe879 Added insert and remove timer callback tests to test_message_timer_interrupt and test_message_timer_locked 2025-10-08 10:23:30 +01:00
Mario Luzeiro
793bafa1b4 Added callbacks when a timer is inserted or removed (#1155) 2025-10-08 10:23:30 +01:00
mike919192
c13d01319e etl array checks (#1188)
* Regression fix: Support zero arguments emplace() in etl::optional (#1183)

* Added coderabbitai configuration

* Added builtin mem function tests

* Modified etl::typed_storage

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW

* Added etl::typed_storage_ext and swap for same

* Added etl::typed_storage_ext and swap for same

# Conflicts:
#	include/etl/alignment.h

* Added release notes

* Fixes to GCC -O2 errors

* Changed char* parameters to value_type* parameters

* Fixed compilation issues for const containers unit tests

* Added automatic selection of __builtin_memxxx functions for GCC and clang

* Added enhanced coderabbit configuration

* Updated version and release notes

* Disabled constexpr const container tests for C++11

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Updated version and release notes

* feat: removed unreachable break statements (#1169)

* Updated version and release notes

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Support zero arguments emplace() in etl::optional

For non-fundamental types, a recent change in etl::optional was
introduced that doesn't support zero arguments emplace() anymore.

This change fixes it and adds the respective test.

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>

* Fix etl::typed_storage by supporting omitted destructors (#1182)

* Added coderabbitai configuration

* Added builtin mem function tests

* Modified etl::typed_storage

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW

* Added etl::typed_storage_ext and swap for same

* Added etl::typed_storage_ext and swap for same

# Conflicts:
#	include/etl/alignment.h

* Added release notes

* Fixes to GCC -O2 errors

* Changed char* parameters to value_type* parameters

* Fixed compilation issues for const containers unit tests

* Added automatic selection of __builtin_memxxx functions for GCC and clang

* Added enhanced coderabbit configuration

* Updated version and release notes

* Disabled constexpr const container tests for C++11

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Updated version and release notes

* feat: removed unreachable break statements (#1169)

* Updated version and release notes

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Fix etl::typed_storage by supporting omitted destructors

In a recent change to alignment.h, the etl::typed_storage was
changed in a way that in case of an already constructed object,
the object is created via assignment.

However, this contradicts the original use case that led to
etl::typed_storage in the first place:
https://github.com/ETLCPP/etl/pull/1023

The goal is to omit destructors (and at the same time support
classes with deleted assignment operators), so they can be optimized out
at link time.

This change reverts commit ac7b268 to restore the original
functionality and changes the test to reflect the original
use case.

* Fix missing create() in non-C++11 typed_storage_ext constructor

* Typo fix

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>

* removed navis file from project

* Updated version and release notes

* Removed forced unsigned int cast in type_def bit-shift operators (#1178)

* Removed UB in type_def bit-shift operators

* Changed shift operators to allow both signed and unsigned operands for shifts
This allows the library user to explicitly use unsigned values to avoid UB

* Fixed constexpr errors for CPP11

* Changed is_arithmetic checks to use is_integral since valid shifts require integral operands

* Removed need for CPP11 since changes are CPP03 compatible

* Delete project navis files

* Add force CI check on piull requests

* Removed ETL_NOEXCEPT from delegate operator(), call_if(), and call_or()

Removed ETL_NOEXCEPT from closureoperator(), call_if(), and call_or()

* Updated version and release notes

* Updated version and release notes

* Remove noexcept from delegate method stubs. (#1185)

In addition to removing noexcept from call_if, this is also needed to prevent
an abort when cancelling a pthread that is executing a delegate.

* Updated version and release notes

* Re architect the extra checks

* Add CHECK_EXTRA

* Fix newline at end of file

* The check index macro also needs to be defined to throw

* Remove ETL_VERBOSE_ERRORS macros

---------

Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: David Ockey <2897027+ockeydockey@users.noreply.github.com>
Co-authored-by: Marco Nilsson <marco@zyax.se>
2025-10-08 10:22:54 +01:00
John Wellbelove
da32625f10 Removed #define ETL_DEBUG as this is a project define 2025-10-08 10:22:14 +01:00
mike919192
5b76824c61 Debug assert (#1175)
* debug assert POC

* Swith to ETL_CONSTEXPR14

* Finish TODO checks

* First and last can be equal

* Add ETL_DEBUG_THROW_EXCEPTIONS

* Try allowing c++11 constexpr

* Add macro for throwing from c++11 constexpr

* Remove braces

* Add extra asserts in size_t overload functions

* Fill out debug asserts

* Line up comments
2025-10-08 10:21:14 +01:00
David Ockey
f9982a6fde
Added back in support for populating non 8-bit strings with 8-bit data (#1196)
* Fixed ability to populate 16-bit strings with 8-bit data

* Added more unit tests

* Fixed C++11 build errors

* Changed testing to accommodate C++11 better

* Cleaned up comments

* Cleaned up tests to be more consistent

* Make template matches mutually exclusive to prevent ambiguous behavior

* Added changes to u32 and wchar strings

* Changed const range tests to use const string
2025-10-08 09:39:26 +01:00
Roland Reichwein
05731c2786
Add etl::is_constant_evaluated (#1198)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-10-08 09:32:43 +01:00
David Ockey
86b9e0903f
Added support for transitions on state enter for HFSM (#1199)
* Added support for transitions on state enter for HFSM

* Fixed unit test build error

* Comment clean-up

* Changed FSM so that self-transitions can also transition "on enter"

* Fixing C++03 build error for clang
2025-10-08 08:43:09 +01:00
mike919192
2bf512dd42 Vector checks (#1193)
* Add checks to vector and fix test failures

* Add tests to vector

* Add tests to external buffer and non trivial

* All tests should be implemented

* Add checks to vector_pointer and vector_pointer_ext

* Get bad iterators from a second vector
2025-10-03 10:49:23 +01:00
John Wellbelove
bcf7a95bb6 Renamed ETL_ASSERT_UNTYPED to ETL_ASSERT_GENERIC 2025-10-02 08:28:50 +01:00
John Wellbelove
07bf063daa Added missing CI scripts to the project 2025-10-01 18:58:33 +01:00
mike919192
4cf522ed46 etl array checks (#1188)
* Regression fix: Support zero arguments emplace() in etl::optional (#1183)

* Added coderabbitai configuration

* Added builtin mem function tests

* Modified etl::typed_storage

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW

* Added etl::typed_storage_ext and swap for same

* Added etl::typed_storage_ext and swap for same

# Conflicts:
#	include/etl/alignment.h

* Added release notes

* Fixes to GCC -O2 errors

* Changed char* parameters to value_type* parameters

* Fixed compilation issues for const containers unit tests

* Added automatic selection of __builtin_memxxx functions for GCC and clang

* Added enhanced coderabbit configuration

* Updated version and release notes

* Disabled constexpr const container tests for C++11

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Updated version and release notes

* feat: removed unreachable break statements (#1169)

* Updated version and release notes

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Support zero arguments emplace() in etl::optional

For non-fundamental types, a recent change in etl::optional was
introduced that doesn't support zero arguments emplace() anymore.

This change fixes it and adds the respective test.

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>

* Fix etl::typed_storage by supporting omitted destructors (#1182)

* Added coderabbitai configuration

* Added builtin mem function tests

* Modified etl::typed_storage

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW

* Added etl::typed_storage_ext and swap for same

* Added etl::typed_storage_ext and swap for same

# Conflicts:
#	include/etl/alignment.h

* Added release notes

* Fixes to GCC -O2 errors

* Changed char* parameters to value_type* parameters

* Fixed compilation issues for const containers unit tests

* Added automatic selection of __builtin_memxxx functions for GCC and clang

* Added enhanced coderabbit configuration

* Updated version and release notes

* Disabled constexpr const container tests for C++11

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Updated version and release notes

* feat: removed unreachable break statements (#1169)

* Updated version and release notes

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Fix etl::typed_storage by supporting omitted destructors

In a recent change to alignment.h, the etl::typed_storage was
changed in a way that in case of an already constructed object,
the object is created via assignment.

However, this contradicts the original use case that led to
etl::typed_storage in the first place:
https://github.com/ETLCPP/etl/pull/1023

The goal is to omit destructors (and at the same time support
classes with deleted assignment operators), so they can be optimized out
at link time.

This change reverts commit ac7b268 to restore the original
functionality and changes the test to reflect the original
use case.

* Fix missing create() in non-C++11 typed_storage_ext constructor

* Typo fix

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>

* removed navis file from project

* Updated version and release notes

* Removed forced unsigned int cast in type_def bit-shift operators (#1178)

* Removed UB in type_def bit-shift operators

* Changed shift operators to allow both signed and unsigned operands for shifts
This allows the library user to explicitly use unsigned values to avoid UB

* Fixed constexpr errors for CPP11

* Changed is_arithmetic checks to use is_integral since valid shifts require integral operands

* Removed need for CPP11 since changes are CPP03 compatible

* Delete project navis files

* Add force CI check on piull requests

* Removed ETL_NOEXCEPT from delegate operator(), call_if(), and call_or()

Removed ETL_NOEXCEPT from closureoperator(), call_if(), and call_or()

* Updated version and release notes

* Updated version and release notes

* Remove noexcept from delegate method stubs. (#1185)

In addition to removing noexcept from call_if, this is also needed to prevent
an abort when cancelling a pthread that is executing a delegate.

* Updated version and release notes

* Re architect the extra checks

* Add CHECK_EXTRA

* Fix newline at end of file

* The check index macro also needs to be defined to throw

* Remove ETL_VERBOSE_ERRORS macros

---------

Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: David Ockey <2897027+ockeydockey@users.noreply.github.com>
Co-authored-by: Marco Nilsson <marco@zyax.se>
2025-09-26 09:57:00 +01:00
John Wellbelove
972aedd944 Removed #define ETL_DEBUG as this is a project define 2025-09-26 09:56:58 +01:00
mike919192
fbb92f85fc Debug assert (#1175)
* debug assert POC

* Swith to ETL_CONSTEXPR14

* Finish TODO checks

* First and last can be equal

* Add ETL_DEBUG_THROW_EXCEPTIONS

* Try allowing c++11 constexpr

* Add macro for throwing from c++11 constexpr

* Remove braces

* Add extra asserts in size_t overload functions

* Fill out debug asserts

* Line up comments
2025-09-26 09:55:40 +01:00
John Wellbelove
1b5ff74a3d Fixed spelling of gdc to gcd 2025-09-26 09:53:49 +01:00
John Wellbelove
cc62f212ab Rebased on development 2025-09-21 10:06:12 +01:00
John Wellbelove
62b5a4a6ae Rebased on development 2025-09-20 11:25:09 +01:00
John Wellbelove
bc78ebb72e Fixed spelling of gdc to gcd 2025-09-18 09:07:34 +01:00
John Wellbelove
fd7edc937d Added insert/remove tests 2025-09-12 12:47:51 +01:00
John Wellbelove
91aa52988b Added insert and remove timer callback tests to test_message_timer_interrupt and test_message_timer_locked 2025-09-11 19:28:03 +01:00
John Wellbelove
14c9e9d48e Merge branch 'pull-request/#1155-Added-callbacks-when-a-timer-is-inserted-or-removed' of https://github.com/ETLCPP/etl into pull-request/#1155-Added-callbacks-when-a-timer-is-inserted-or-removed 2025-09-11 18:39:12 +01:00
Mario Luzeiro
5f70befa4a
Added callbacks when a timer is inserted or removed (#1155) 2025-09-11 18:38:48 +01:00
John Wellbelove
96f494aeae Delete project navis files 2025-09-11 18:21:10 +01:00
David Ockey
603c977733
Removed forced unsigned int cast in type_def bit-shift operators (#1178)
* Removed UB in type_def bit-shift operators

* Changed shift operators to allow both signed and unsigned operands for shifts
This allows the library user to explicitly use unsigned values to avoid UB

* Fixed constexpr errors for CPP11

* Changed is_arithmetic checks to use is_integral since valid shifts require integral operands

* Removed need for CPP11 since changes are CPP03 compatible
2025-09-11 16:23:50 +01:00
John Wellbelove
5add8a94a7 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2025-09-10 10:50:09 +01:00
John Wellbelove
02853e5bb6 removed navis file from project 2025-09-10 10:50:02 +01:00
Roland Reichwein
d6d78eb8bd
Fix etl::typed_storage by supporting omitted destructors (#1182)
* Added coderabbitai configuration

* Added builtin mem function tests

* Modified etl::typed_storage

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW

* Added etl::typed_storage_ext and swap for same

* Added etl::typed_storage_ext and swap for same

# Conflicts:
#	include/etl/alignment.h

* Added release notes

* Fixes to GCC -O2 errors

* Changed char* parameters to value_type* parameters

* Fixed compilation issues for const containers unit tests

* Added automatic selection of __builtin_memxxx functions for GCC and clang

* Added enhanced coderabbit configuration

* Updated version and release notes

* Disabled constexpr const container tests for C++11

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Updated version and release notes

* feat: removed unreachable break statements (#1169)

* Updated version and release notes

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Fix etl::typed_storage by supporting omitted destructors

In a recent change to alignment.h, the etl::typed_storage was
changed in a way that in case of an already constructed object,
the object is created via assignment.

However, this contradicts the original use case that led to
etl::typed_storage in the first place:
https://github.com/ETLCPP/etl/pull/1023

The goal is to omit destructors (and at the same time support
classes with deleted assignment operators), so they can be optimized out
at link time.

This change reverts commit ac7b268 to restore the original
functionality and changes the test to reflect the original
use case.

* Fix missing create() in non-C++11 typed_storage_ext constructor

* Typo fix

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-09-10 10:41:09 +01:00
Roland Reichwein
75606fc079
Regression fix: Support zero arguments emplace() in etl::optional (#1183)
* Added coderabbitai configuration

* Added builtin mem function tests

* Modified etl::typed_storage

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW

* Added etl::typed_storage_ext and swap for same

* Added etl::typed_storage_ext and swap for same

# Conflicts:
#	include/etl/alignment.h

* Added release notes

* Fixes to GCC -O2 errors

* Changed char* parameters to value_type* parameters

* Fixed compilation issues for const containers unit tests

* Added automatic selection of __builtin_memxxx functions for GCC and clang

* Added enhanced coderabbit configuration

* Updated version and release notes

* Disabled constexpr const container tests for C++11

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Attempted fixes for MacOS compilation

* Updated version and release notes

* feat: removed unreachable break statements (#1169)

* Updated version and release notes

* Modified etl::typed_storage

# Conflicts:
#	include/etl/alignment.h

* Support zero arguments emplace() in etl::optional

For non-fundamental types, a recent change in etl::optional was
introduced that doesn't support zero arguments emplace() anymore.

This change fixes it and adds the respective test.

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
2025-09-10 10:37:30 +01:00
John Wellbelove
d27adeb510 #1171 optional of a const arary can't be emplaced with gcc-15 2025-09-06 20:51:11 +01:00
John Wellbelove
0326edef42 Replaced ETL_NOEXCEPT_IF_NO_THROW with ETL_NOEXCEPT_EXPR(ETL_NOT_USING_EXCEPTIONS) 2025-09-06 20:51:10 +01:00
Roland Reichwein
363d2e8ab5
Make call interfaces in etl::delegate and etl::closure conditionally noexcept (#1172)
* Make all call interfaces in etl::delegate conditionally noexcept

This covers the case when the invoked code can throw.

For operator(), this was already implemented. Do similarly for the
other call interfaces.

* Make all call interfaces in etl::closure conditionally noexcept

Similar to etl::delegate, the contained delegate might be
throwing. Apply the same solution as in etl::delegate to make
the call interfaces conditionally noexcept.
2025-09-06 20:50:58 +01:00
John Wellbelove
bb628aa25d Attempted fixes for MacOS compilation 2025-09-04 15:00:22 +01:00
John Wellbelove
b5ea03133d Attempted fixes for MacOS compilation 2025-09-04 14:35:16 +01:00
John Wellbelove
73ae8f4d85 Attempted fixes for MacOS compilation 2025-09-04 14:26:01 +01:00
John Wellbelove
2d1af2dfb6 Attempted fixes for MacOS compilation 2025-09-04 13:51:32 +01:00
John Wellbelove
0deb855676 Disabled constexpr const container tests for C++11 2025-09-04 12:52:35 +01:00
John Wellbelove
76d0a78463 Added enhanced coderabbit configuration 2025-09-04 11:27:27 +01:00
John Wellbelove
119d381570 Fixed compilation issues for const containers unit tests 2025-09-04 10:10:52 +01:00
John Wellbelove
3837e36d71 Fixes to GCC -O2 errors 2025-09-02 13:51:45 +01:00
John Wellbelove
89c479ef15 Added etl::typed_storage_ext and swap for same
# Conflicts:
#	include/etl/alignment.h
2025-08-28 13:45:41 +01:00
John Wellbelove
18a7e79c56 Added etl::typed_storage_ext and swap for same 2025-08-28 10:30:24 +01:00
John Wellbelove
0081cfa794 Modified etl::typed_storage 2025-08-26 17:38:46 +01:00
John Wellbelove
5f8b7f7120 Added builtin mem function tests 2025-08-22 19:20:15 +01:00
John Wellbelove
f801b9a093 Fix VS2022 filters 2025-08-20 09:25:50 +01:00
John Wellbelove
2a970134da Removed releaser and destroyer in favour of lambdas and similar 2025-08-19 16:01:46 +01:00
John Wellbelove
4d5cb98d29 Fixed ETL_NOEXCEPT_IF_NO_THROW and #define ETL_NOEXCEPT_IF_NO_THROW_EXPR(...) for C++03
Updated example

Added releaser and destroyer functors to etl::ipool to simplify integration with etl::unique_ptr
2025-08-19 13:18:21 +01:00
John Wellbelove
ac1d2c82d1 Added not_null comparison tests 2025-08-18 17:13:07 +01:00
John Wellbelove
3a25d5934a Added constexpr. Removed some member functions. Removed 'move' member functions for etl::not_null<etl::unique_ptr<T, TDeleter>> 2025-08-18 16:51:49 +01:00
John Wellbelove
2d22dfe236 Changed unique() to underlying_type()
Added underlying_type() to etl::not_null<T*>
2025-08-18 16:50:59 +01:00
John Wellbelove
877ef005ea Fixed file Id error
Updated CMakeLists.txt for tests and syntax checks
2025-08-18 16:50:58 +01:00
John Wellbelove
28d90aa80c Initial implementation 2025-08-18 16:50:57 +01:00
John Wellbelove
63d7470685 Added etl::nontype_t, with C++11 and C++17 alternatives 2025-08-18 14:22:33 +01:00
John Wellbelove
109ba9350d Updated syntax check tests 2025-08-15 19:26:18 +01:00
John Wellbelove
efae99252b Fixed VS2022 project file list 2025-08-15 10:25:08 +01:00
John Wellbelove
8c49e67702 Added return_type and argument_types to etl::delegate 2025-08-13 19:51:31 +01:00
John Wellbelove
f973d31ad1 Merge branch 'development' of https://github.com/ETLCPP/etl into development
# Conflicts:
#	test/test_delegate_observable.cpp
2025-08-13 09:31:42 +01:00
John Wellbelove
b734df629b Attempt to fix Github CI
GCC 11 incompatibility
2025-08-13 08:53:03 +01:00
John Wellbelove
4beadd18f4 Attempt to fix Github CI
GCC 11 incompatibility
2025-08-13 08:49:23 +01:00
John Wellbelove
8f94ef619a Attempt to fix Github CI
GCC 11 incompatibility
2025-08-12 21:32:51 +01:00
John Wellbelove
5c24ae2f0d Attempt to fix Github CI
GCC 11 incompatibility
2025-08-12 21:21:16 +01:00
John Wellbelove
3e95e772c3 Attempt to fix Github CI 2025-08-12 18:28:04 +01:00
John Wellbelove
310cc6e501 Attempt to fix Github CI 2025-08-12 18:22:52 +01:00
John Wellbelove
86f76933c1 Added full rounded integral division 2025-08-12 15:13:03 +01:00
John Wellbelove
ddfd3fa443 Added remaining limits tests
Fixed divide_round_half_odd and added tests
2025-08-11 20:19:18 +01:00
John Wellbelove
5c52fd19cc Added new unit tests
Fixed integer overflow issue at limits
2025-08-11 09:49:37 +01:00
John Wellbelove
ff1e4296bc Added complete set of rounded integral division 2025-08-07 18:45:46 +01:00
John Wellbelove
2de4057021 Added transition_to member function to change state
Pulled out the core state change code to process_state_change
2025-08-05 18:48:15 +01:00
John Wellbelove
1d4dbc8976 Added etl::fsm_state_pack and corresponding constructor 2025-08-04 16:10:04 +01:00
John Wellbelove
7504646301 Added delegate_observable 2025-08-03 16:22:50 +01:00
John Wellbelove
e67066b788 Added emplace type constructors to etl::optional 2025-08-02 13:47:33 +01:00
John Wellbelove
fa25b8cd5e Added instructions and scripts the convert ETL header guards 2025-07-27 11:23:20 +01:00
John Wellbelove
e60f68bad8 Removed asserts from copy_s and move_s algorithms 2025-07-27 10:38:20 +01:00
John Wellbelove
05e45117ea Update templates for pentential macro name conflicts 2025-07-26 13:23:02 +01:00
John Wellbelove
7858d66884 Removed redundant VS2022 project settings 2025-07-20 11:14:23 +01:00
John Wellbelove
5d7573e513 Minor changes 2025-07-20 11:05:44 +01:00
Mario Luzeiro
5c5e5df788 Implements deferred callback timer with optional priority (#955)
* Refactored callback_timer_locked to allow base class extention of tick method

* Implement callback timer deferred with priority option

---------

Co-authored-by: Mario Luzeiro <mluzeiro@gliderbits.com>
2025-07-20 08:36:04 +01:00
John Wellbelove
2c904baf80 Updated release notes 2025-07-19 16:10:08 +01:00
John Wellbelove
0e6e961039 #1126 to_arithmetic does not compile on C++98 2025-07-19 15:54:06 +01:00
John Wellbelove
7f53572b53 Fix gamma tests 2025-07-18 16:33:23 +01:00
John Wellbelove
d7875adf9e Added CRC64-ISO added 2025-07-15 10:36:43 +01:00
John Wellbelove
481e29896a Merge branch 'pull-request/#1149-Fix-bug-in-the-void-etl--unlink(first,-last)-for-bidirectional-links' into development 2025-07-14 09:53:40 +01:00
Sergei
4979c8a20b
Fix bug in the void etl::unlink(first, last) for bidirectional links. (#1149)
* Reproduce bug in the `void etl::unlink(first, last)` for bidirectional links.

- correct `test_unlink_range_bidirectional_link` unit test according to the documentation - now this test fails.
- enhance `test_intrusive_list::test_splice_range_self` unit test to verify also `etl_previous` links after splicing lists - now unit test crashes.

* Fix bug in the `void etl::unlink(first, last)` for bidirectional links.

- `test_unlink_range_bidirectional_link` unit test now is green.
- `test_intrusive_list::test_splice_range_self` is not crashing anymore and green.
2025-07-14 08:50:28 +01:00
John Wellbelove
be5a6e2951 Added CRC8 and CRC16 opensafety algorithms 2025-07-14 08:43:20 +01:00
John Wellbelove
73e354c3be Added constexpr for delegate invocations 2025-07-14 08:42:27 +01:00
John Wellbelove
8e02bb3059 Strengthened static assert tests
Changed enable_if checks to static asserts
2025-07-13 10:33:30 +01:00
John Wellbelove
dffd86544c Added etl::type_lists_are_convertible 2025-07-13 10:33:29 +01:00
John Wellbelove
7f7127a6ab Added doxygen comments to etl::closure
Added bind member function for the full set of arguments
2025-07-11 11:46:47 +01:00
John Wellbelove
7535d9b63a Merge branch 'pull-request/#1144-Add-support-for-CRC8-NRSC5' into development 2025-07-09 10:22:12 +01:00
John Wellbelove
99e3ebd3d5 Added crc8_nrsc5 for VS2022 and CMake projects 2025-07-09 10:21:35 +01:00
Cpt-Seablue
bb496e6262
Add support for CRC8-NRSC5 (#1144)
* Add CRC8-NRSC5 parameters

* Add CRC8-NRSC5 header

* Add CRC8-NRSC5 header

* Add tests
2025-07-08 20:48:17 +01:00
John Wellbelove
9b3d8dc96e Fixed lower and upper bound tests for std::less comparator 2025-07-08 20:47:05 +01:00
John Wellbelove
67dfd5c0dd Completed tests for const_map, const_multimap, const_setand const_multiset 2025-07-08 20:41:34 +01:00
John Wellbelove
89647c14f2 Fixed const_map and const_set operator== to check container sizes 2025-07-08 08:18:03 +01:00
John Wellbelove
9026ef8933 Merge branch 'pull-request/#1135-Fix-error-on-running-clang-test-only' into development
# Conflicts:
#	test/vs2022/etl.vcxproj
#	test/vs2022/etl.vcxproj.filters
2025-07-07 11:18:49 +01:00
rolandreichweinmusic
28da1fa3ef
Fix tests on big endian (#1142)
* Fix bitset_new test: bitset is implemented as little endian container

* Fix test_bsd_checksum.cpp: endian test was only implemented for little endian

* Fix endianness test

* Fix endian in crc tests

* Fix test_fnv_1

* Fix test_hash

* Fix test_jenkins

* Fix test_memory

* Fix pearson test

* Fix test_xor_rotate_checksum

* Fix murmur test
2025-07-07 08:55:59 +01:00
Roland Reichwein
cb6b384f88
Cleanup to get more independent of std (#1139)
* Remove redundant test.sh

* Fix includes according to usage / dependency in individual header files
2025-07-06 20:59:39 +01:00
John Wellbelove
feeb0d480a Fixed C++03 compatibility
Added syntax checks for closure.h
2025-07-06 20:24:19 +01:00
Roland Reichwein
3c783e2de7
Add etl::closure (#1137) 2025-06-28 11:18:46 +01:00
John Wellbelove
3784991dd2 Added const_set_constexpr tests 2025-06-28 09:05:50 +01:00
John Wellbelove
5f73295392 Modified const_map & const_multimap type definitions
Added const_set
2025-06-28 08:53:48 +01:00
John Wellbelove
79f93b797b Remove const_map test 2025-06-27 09:33:51 +01:00
John Wellbelove
39469d29dc Revert "Split classes into ETL standard top level and 'i' base classes."
This reverts commit de13fb8afea9aa2777958d902336dcb04f87968e.

# Conflicts:
#	include/etl/const_map.h
#	include/etl/const_multimap.h
#	test/test_const_map.cpp
#	test/test_const_map_constexpr.cpp
#	test/test_const_multimap.cpp
#	test/test_const_multimap_constexpr.cpp
#	test/vs2022/etl.vcxproj
#	test/vs2022/etl.vcxproj.filters
2025-06-27 09:28:58 +01:00
John Wellbelove
f6b969eeba Revert "etl::const_map completed"
This reverts commit 697cd0a5aaa87ab9da6d1ad337a6c55d9934be57.

# Conflicts:
#	include/etl/const_map.h
2025-06-27 09:26:23 +01:00
John Wellbelove
3db20a4e91 Revert "Added const_map_ext and const_multimap_ext"
This reverts commit 8591569eb530a33a0d136bb5bfe2d1fe8c8d2f31.

# Conflicts:
#	include/etl/const_map.h
#	test/test_const_map.cpp
2025-06-27 09:25:03 +01:00
John Wellbelove
a94d0ce986 Revert "Work in progress"
This reverts commit 799280f615c4c46d68571e990926f2dd2fc3d64f.

# Conflicts:
#	include/etl/const_map.h
#	test/test_const_map.cpp
2025-06-27 09:22:31 +01:00
John Wellbelove
52cd92d31a Minor format change 2025-06-26 20:23:24 +01:00
Roland Reichwein
3ec2db51c8 Fix error on running clang test only (#1135)
* Fix error on running clang test only

Consolidate tests by factoring out redundant test function

* Make run-tests.sh executable
2025-06-26 20:23:23 +01:00
John Wellbelove
8591569eb5 Added const_map_ext and const_multimap_ext 2025-06-26 20:23:22 +01:00
John Wellbelove
de13fb8afe Split classes into ETL standard top level and 'i' base classes.
Split into const and constexpr unit tests files
2025-06-26 20:23:22 +01:00
John Wellbelove
4808919caf Added value_compare to lexicographical_compare call 2025-06-26 20:23:21 +01:00
John Wellbelove
6530c9625f Modified to have iconst_map base type 2025-06-26 20:23:20 +01:00
John Wellbelove
4d10d47f5e Removed non-const iterator and pointer types
Updated Doxygen comments
2025-06-26 20:23:20 +01:00
John Wellbelove
697cd0a5aa etl::const_map completed 2025-06-26 20:23:19 +01:00
John Wellbelove
4dee5e81cd Work in progress 2025-06-26 20:23:18 +01:00
John Wellbelove
799280f615 Work in progress 2025-06-26 20:23:17 +01:00
John Wellbelove
9fdc1e1326 Minor format change 2025-06-26 20:22:41 +01:00
Roland Reichwein
51040d1a28
Fix error on running clang test only (#1135)
* Fix error on running clang test only

Consolidate tests by factoring out redundant test function

* Make run-tests.sh executable
2025-06-25 18:38:25 +01:00
rolandreichweinmusic
0f408a43ba
Fix gamma.h on i386 (#1136)
Add tests for gamma decode
2025-06-25 18:09:37 +01:00
John Wellbelove
64eb9742f0 Added const_map_ext and const_multimap_ext 2025-06-25 14:47:47 +01:00
John Wellbelove
e84be139c5 Split classes into ETL standard top level and 'i' base classes.
Split into const and constexpr unit tests files
2025-06-24 13:24:17 +01:00
John Wellbelove
d458811c26 Added value_compare to lexicographical_compare call 2025-06-24 13:19:56 +01:00
Roland Reichwein
185557db59 Fix usage of template keyword (#1131)
For non-GCC-compilers, the template keyword is being used in
parameter_pack.h for referring to a template template member.

However, clang 19 and 20 don't accept this.

It should be verified which compiler really needs the template
keyword here at all. If not, the if-branch can be removed.

Removed redundant ETL_USING_WIDE_CHARACTERS

Added using_libc_wchar_h to ETL traits

#1127 type_traits.h and C++03

Changed many instances of mem_copy to mem_move
2025-06-22 11:13:43 +01:00
John Wellbelove
62ffe81c1f Modified to have iconst_map base type 2025-06-22 11:13:07 +01:00
John Wellbelove
eb6df0ec82 Removed non-const iterator and pointer types
Updated Doxygen comments
2025-06-16 08:30:35 +01:00
John Wellbelove
609dc3dc2d etl::const_map completed 2025-06-15 20:11:08 +01:00
John Wellbelove
a2efcd2fe7 Work in progress 2025-06-15 17:32:49 +01:00
John Wellbelove
9832157fc4 Work in progress 2025-06-14 19:50:41 +01:00
John Wellbelove
ad9a17b6db Removed redundant ETL_USING_WIDE_CHARACTERS
Added using_libc_wchar_h to ETL traits
2025-06-12 18:32:00 +01:00
John Wellbelove
a037af120b Merge branch 'hotfix/Accomodate-libc++-with-disabled-wchar_t-features' into development
# Conflicts:
#	include/etl/basic_string.h
2025-06-12 13:15:38 +01:00
John Wellbelove
8659091ff3 Fixed std::string_view include warning for < C++17 2025-06-11 13:16:30 +01:00
John Wellbelove
933da4dcb4 Added C++23 Preview configuration 2025-06-06 18:18:16 +01:00
John Wellbelove
59eab34162 Used mem_copy and mem_move to optimise vectors of pointers 2025-06-06 17:27:43 +01:00
John Wellbelove
2ff1ed1a12 Removed instances of ETL_NTH_TYPE_FORCE_CPP03_IMPLEMENTATION 2025-06-06 13:53:26 +01:00
John Wellbelove
2085295358 #1119 Forced compiler error in nth_type.h breaks containers for C++03 2025-06-06 12:17:49 +01:00
John Wellbelove
78d3c45cfd Fixed const&& move constructors
# Conflicts:
#	include/etl/tuple.h
2025-06-05 12:01:37 +01:00
John Wellbelove
ccb37a12a3 Fixed const&& move constructors
# Conflicts:
#	include/etl/tuple.h
2025-06-05 09:57:53 +01:00
John Wellbelove
cd273e777d Initial solution 2025-06-04 10:12:01 +01:00
John Wellbelove
276415dc19 Updated release 2025-06-01 18:08:38 +01:00
John Wellbelove
f39922dddc Merge branch 'feature/#1100-Optimise-string-class-initialisation-from-C-data' into development
# Conflicts:
#	include/etl/basic_string.h
2025-06-01 13:50:25 +01:00
John Wellbelove
155050b816 Optimisation of strings 2025-06-01 13:49:14 +01:00
John Wellbelove
8fb4090e75 Minor script updates 2025-05-31 21:49:37 +01:00
John Wellbelove
0428118553 Optimisation of strings 2025-05-31 21:47:25 +01:00
John Wellbelove
896baaa076 Minor script updates 2025-05-31 15:56:24 +01:00
John Wellbelove
1cb75ff072 Added -Wformat-security 2025-05-30 13:52:37 +01:00
John Wellbelove
ddcc975cec Optimisation of strings 2025-05-30 13:52:37 +01:00
John Wellbelove
e87e24557f Hardened mem_set and mem_char parameter requirements 2025-05-30 13:52:36 +01:00
Roland Reichwein
15ba2b71cb Remove -Wuseless-cast (#1110) 2025-05-30 11:41:07 +01:00
John Wellbelove
083439f60b Added -Wformat-security 2025-05-29 20:15:35 +01:00
John Wellbelove
cb6d924dad Optimisation of strings 2025-05-29 20:15:19 +01:00
John Wellbelove
e8a5673f7a Hardened mem_set and mem_char parameter requirements 2025-05-29 20:14:37 +01:00
Roland Reichwein
09acfca5a6
Remove -Wuseless-cast (#1110) 2025-05-28 13:21:04 +01:00
John Wellbelove
ffc17160da Added support for self transition to etl::hfsm
Changed all instances of 'return STATE_ID' to 'return No_State_Change'
2025-05-27 17:07:58 +01:00
Roland Reichwein
0abd618271
Add C++23 detection (#1109) 2025-05-27 16:11:45 +01:00
Roland Reichwein
65bae7e264
Add unit tests for bit_stream (#1108)
* Add unit tests for bit_stream

* Include issue number in test name

* Included issue number in test name

---------

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-05-27 09:02:00 +01:00
John Wellbelove
84ef87dbf0 Added missing files in unit test CMakeLists.txt 2025-05-26 10:23:56 +01:00
John Wellbelove
a0d81170c8 Added inline namespaces 2025-05-25 19:07:18 +01:00
John Wellbelove
afdb37715d Added arithmetic tests 2025-05-25 19:06:27 +01:00
John Wellbelove
2df0039781 Moved chrono.h in the VS2022 project list 2025-05-22 10:20:21 +01:00
John Wellbelove
f33c40001f Added get_token_list to string_utilities to retrieve multiple tokens 2025-05-21 10:21:30 +01:00
John Wellbelove
c25df24b03 Allow zero sized etl::array 2025-05-18 13:41:01 +01:00
John Wellbelove
ba31479481 Added sys_day and local_day constructors and conversions 2025-05-17 21:00:23 +01:00
John Wellbelove
d04ee8c5e7 Added configuration for selection of STL-like or ETL-verbose chrono literals 2025-05-17 11:46:52 +01:00
John Wellbelove
a724dd08b8 Removed useless-cast warning 2025-05-15 19:05:49 +01:00
John Wellbelove
7b603e201c Merge branch 'feature/add-time-date-classes' into development
# Conflicts:
#	include/etl/tuple.h
#	test/vs2022/etl.vcxproj.filters
2025-05-14 19:23:21 +01:00
John Wellbelove
9e965b07e0 Small layout and comment alterations 2025-05-14 19:16:42 +01:00
Roland Reichwein
420474593b
Added iterator and const_iterator to etl::ipool (#1043)
* Added iterator and const_iterator to etl::ipool

* Adjusted source code format
2025-05-14 19:14:23 +01:00
Roland Reichwein
fe928fa53a
Support C++23 (#1069)
* Support C++23

* Fix syntax checks for correct C++ standard version

---------

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-05-13 21:27:04 +01:00
Roland Reichwein
9f5ad35d41
Cleanup fixes for C++03 (#1089)
* Typo fixes

* Fix typo

---------

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-05-13 21:21:50 +01:00
John Wellbelove
915d668904 Added chrono.h to tests 2025-05-13 08:28:37 +01:00
John Wellbelove
f3541696fb C++03, 11, 14, 17, 20 compatibility changes 2025-05-12 12:10:41 +01:00
John Wellbelove
12328670dd Work in progress 2025-05-11 14:11:22 +01:00
John Wellbelove
c37e48d589 Merge branch 'feature/#1085-Add-The-Remaining-Math-Operators-To-ETL_TYPEDEF' into development 2025-05-09 09:00:20 +01:00
John Wellbelove
524ebf9b9f Small style changes to etl::span take() 2025-05-07 07:26:26 +01:00
John Wellbelove
1d19ac22cd Added licence text to tuple header
Removed redundant include
2025-05-07 07:25:41 +01:00
Roland Reichwein
ba487bcb04
Add take() to etl::span (#1083) 2025-05-06 08:52:51 +01:00
John Wellbelove
0b280bf5f0 Fixed test syntax error 2025-05-05 21:10:03 +01:00
Helder Duarte
66af2a69c1
Add swap(circular_buffer_ext&&) (#1068) (#1072) 2025-05-05 19:16:38 +01:00
John Wellbelove
394b1110fb Added all arithmetic operators to type_def 2025-05-05 18:01:29 +01:00
John Wellbelove
22391aa750 Imported and updated etl::underlying_type 2025-05-03 08:25:45 +01:00
John Wellbelove
879d620094 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2025-05-01 07:31:28 +01:00
Jiang Yi
f69da8577e
Support etl::underlying_type with compiler builtin (#1045)
msvc is unsupported currently

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-04-30 17:01:44 +01:00
Roland Reichwein
49acd2d2ab Various cleanup changes (#1049)
* Various Cleanup

Remove remove() by pointer because erase() can be used for that

Fix signed distance handling, with added check for order

Add missing file ID

Fix File IDs

Added test for algorithm.h

* Improve types
# Conflicts:
#	include/etl/file_error_numbers.h
2025-04-30 16:54:22 +01:00
BartolomeyKant
2fd4e171ba
rise up cmake minimum required (#1066)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-04-30 16:47:39 +01:00
John Wellbelove
aa0d8b322c Merge branch 'development' of https://github.com/ETLCPP/etl into development
# Conflicts:
#	zephyr/module.yml
2025-04-30 12:23:56 +01:00
Roland Reichwein
6ed64f7b21
Support const pointers in etl::is_aligned() (#1082)
* Add Zephyr build system module.yml (#1074)

The Zephyr build system requires that modules have a `module.yml` file to specify where the module cmake and kconfig files are located. 
These can also be explicitly set as "external" meaning that they do not exist within the module tree, itself. These build file can still be specified elsewhere via cmake variables, explained more in-depth here: https://docs.zephyrproject.org/latest/develop/modules.html#modules-module-ext-root
This change makes it such that ETL can be included more easily in zephyr projects running on embedded systems. A similar change can be observed in the public nanopb repository, where the repo only requires its own `zephyr/module.yml` file to be found by the zephyr build system, but the kconfig and cmake additions can exist outside of the library repository.

* Support const pointers to etl::is_aligned()

---------

Co-authored-by: Zach Van Camp <marshmilo100@gmail.com>
2025-04-30 12:22:38 +01:00
John Wellbelove
2b141e0f22 Fixed tests to be compatible with std::chrono 2025-04-30 12:07:15 +01:00
John Wellbelove
42ba4d8248 Updated tests 2025-04-30 09:26:34 +01:00
John Wellbelove
5143aa7f53 Added year_month_day and year_month_day_last classes and tests 2025-04-28 20:00:18 +01:00
John Wellbelove
279ce8f0dc Added more chrono classes and operators 2025-04-27 20:22:45 +01:00
John Wellbelove
4485a90c04 Added etl::chrono::year_month 2025-04-25 19:21:41 +01:00