2603 Commits

Author SHA1 Message Date
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
0d0e290474 Changed #if ETL_USING_STL to #if ETL_USING_STD_OSTREAM around std::basic_ostream
Fixed warnings when using ETL_DEBUG_COUNT in non debug build
2025-09-06 20:51:13 +01:00
John Wellbelove
2fa82d579e Macro changes to fix issues 2025-09-06 20:51:12 +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
Roland Reichwein
92f07a66fc
Fix .clang-format (#1177)
* Added coderabbitai configuration

* Fix .clang-format

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-09-06 14:12:34 +01:00
David Ockey
b85b071a3e
Made all 'noexcept' statements use ETL_NOEXCEPT macro (#1179)
* Added coderabbitai configuration

* Made all 'noexcept' statements use ETL_NOEXCEPT macro

---------

Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-09-06 09:32:03 +01:00
Drew Rife
515dcf4bf6
feat: removed unreachable break statements (#1169) 2025-09-04 19:32:57 +01:00
John Wellbelove
958c331d49 Updated version and release notes 2025-09-04 11:29:02 +01:00
John Wellbelove
51675a6ce7 Added automatic selection of __builtin_memxxx functions for GCC and clang 2025-09-04 10:11:57 +01:00
John Wellbelove
119d381570 Fixed compilation issues for const containers unit tests 2025-09-04 10:10:52 +01:00
John Wellbelove
d92eb4d3ff Changed char* parameters to value_type* parameters 2025-09-04 10:10:02 +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
7c2804c1a9 Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW 2025-08-26 17:41:51 +01:00
John Wellbelove
0081cfa794 Modified etl::typed_storage 2025-08-26 17:38:46 +01:00
John Wellbelove
cde5bcff69 Updated release notes and version 2025-08-19 18:50:57 +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
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
3bc87f1045 Changed unique() to underlying_type()
Added underlying_type() to etl::not_null<T*>
2025-08-18 16:51:00 +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
f6fd44a096 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
5312f5eddd Added explicit check for remainder in divide_round_to_infinity 2025-08-15 10:24:45 +01:00
John Wellbelove
8c49e67702 Added return_type and argument_types to etl::delegate 2025-08-13 19:51:31 +01:00
John Wellbelove
534fcc6ebe Updated fsm generator 2025-08-13 10:46:14 +01:00
John Wellbelove
ca5f5394f7 Minor style change 2025-08-13 10:14:13 +01:00
John Wellbelove
b734df629b Attempt to fix Github CI
GCC 11 incompatibility
2025-08-13 08:53:03 +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
0fc2cfeff3 Updated fsm_generator.h to match edited fsm.h 2025-08-04 17:20:05 +01:00
John Wellbelove
5d694e7aa8 Added ETL_UNLIKELY to ETL_ASSERT if (!(b)) conditions 2025-08-04 16:11:20 +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
51a4d0e8da Update templates for pentential macro name conflicts 2025-08-03 16:22:10 +01:00
John Wellbelove
e67066b788 Added emplace type constructors to etl::optional 2025-08-02 13:47:33 +01:00
John Wellbelove
2cd28ce7c5 Fixed minor issues 2025-08-01 09:23:42 +01:00
John Wellbelove
5a2aeb683e Update templates for potential macro name conflicts 2025-07-28 09:32:10 +01:00
John Wellbelove
43385fea63 Very minor layout change 2025-07-27 10:38:49 +01:00
John Wellbelove
e60f68bad8 Removed asserts from copy_s and move_s algorithms 2025-07-27 10:38:20 +01:00
John Wellbelove
c26e2de7ec Changed generate scripts to use python3 2025-07-27 10:35:49 +01:00
John Wellbelove
833e352dcb Merge branch 'hotfix/#1154-etl-20.42.2-not-compiling-with-IAR-Arm-compiler-v9.20' into development 2025-07-26 19:35:57 +01:00
John Wellbelove
b7de57fbf1 Update templates for pentential macro name conflicts 2025-07-26 14:10:01 +01:00
John Wellbelove
05e45117ea Update templates for pentential macro name conflicts 2025-07-26 13:23:02 +01:00
John Wellbelove
b77698810f hotfix #1154-etl-20.42.2-not-compiling-with-IAR-Arm-compiler-v9.20 2025-07-24 15:40:10 +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
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
8de211acd9 #1151 test failure in i386 in 20.42.1: test_replace_strings in test_string_utilities.c fails 2025-07-18 14:59:25 +01:00
John Wellbelove
13fa2801a3 Updated version and release notes 2025-07-15 11:12:05 +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
fa77f58247 Updated version and release notes 2025-07-11 15:48:55 +01:00
Roland Reichwein
1a430f4029
Fix compile error in closure.h by using etl::forward (#1147) 2025-07-11 15:44:59 +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
ea09c5ee8d Fixed declaration of etl::const_multiset_ext template deduction guides. 2025-07-11 11:45:05 +01:00
John Wellbelove
3da8b20dfe Updated version and release notes 2025-07-10 15:41:15 +01:00
John Wellbelove
94e18bee81 Undated type_traits generator 2025-07-10 15:19:56 +01:00
John Wellbelove
3dce945223 Added ETL_NOEXCEPT to etl::delegate 2025-07-10 14:30:18 +01:00
John Wellbelove
3888b623e7 Added ETL_NOEXCEPT to etl::type_def 2025-07-10 10:25:27 +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
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
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
Roland Reichwein
72e71a8cb6
Fix build of tuple on clang >= 19 (#1141) 2025-07-06 23:53:28 +01:00
John Wellbelove
f2d9ec18a4 Changed name of macro
Added macro to etl traits
2025-07-06 23:46:52 +01:00
Roland Reichwein
2c3eee4c58
Byteswap depends on individual availability of std::byteswap (#1140) 2025-07-06 23:28:55 +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
Roland Reichwein
5807337721
Ignore deprecated float_denorm_style (#1138) 2025-07-06 20:30:42 +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
5f73295392 Modified const_map & const_multimap type definitions
Added const_set
2025-06-28 08:53:48 +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
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
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
ae43011468 Fixed reversed struct greater<void> parameters 2025-06-26 20:23:18 +01:00
John Wellbelove
799280f615 Work in progress 2025-06-26 20:23:17 +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
Roland Reichwein
bcf00d008e
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.
2025-06-21 16:25:10 +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
16a61050ca Fixed reversed struct greater<void> parameters 2025-06-15 17:32:27 +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
293c7dfcfc Update release 2025-06-12 13:22:32 +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
8441069b71 Fixed possible nullptr references 2025-06-12 13:13:34 +01:00
John Wellbelove
8659091ff3 Fixed std::string_view include warning for < C++17 2025-06-11 13:16:30 +01:00
John Wellbelove
130859c3b7 Made destructor compatible with C++03 2025-06-11 13:16:29 +01:00
Roland Reichwein
400d6d7da0
For cogapp, use cog instead of python (#1125) 2025-06-11 13:16:06 +01:00
Drew Rife
7889d44db6
chore: add newline at end of file (#1122) 2025-06-08 14:21:14 +01:00
John Wellbelove
a85e517196 Updated release notes and version 2025-06-08 11:19:54 +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
3e9f4a99ed #1119 Forced compiler error in nth_type.h breaks containers for C++03
# Conflicts:
#	include/etl/nth_type.h
2025-06-06 13:02:10 +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
896a2e43b7 Disable std::tuple_index and std::tuple_element forward declarations for MacOS and Clang 2025-06-06 10:15:15 +01:00
John Wellbelove
b56394a84f Further optimisation of etl::basic_string::insert by using etl::mem_move() 2025-06-06 09:39:21 +01:00
John Wellbelove
1433fb8f25 Fixed usage of structured bindings for tuple, when not using the STL 2025-06-06 09:37:53 +01:00
John Wellbelove
ccb37a12a3 Fixed const&& move constructors
# Conflicts:
#	include/etl/tuple.h
2025-06-05 09:57:53 +01:00
Roland Reichwein
e2f2a39a97
Fix forward in tuple ctor (#1116) 2025-06-05 09:54:43 +01:00
John Wellbelove
ea89cf79bc Updated release 2025-06-04 19:14:03 +01:00
Roland Reichwein
a1367fc05f
Conditionally use wchar.h (#1115) 2025-06-04 19:05:41 +01:00
John Wellbelove
cd273e777d Initial solution 2025-06-04 10:12:01 +01:00
John Wellbelove
fe6fd35174 Updated version 2025-06-02 23:38:15 +01:00
Roland Reichwein
bf8e924308
Add missing header wchar.h for usage of wcslen() (#1113) 2025-06-02 23:11:00 +01:00
John Wellbelove
276415dc19 Updated release 2025-06-01 18:08:38 +01:00
John Wellbelove
c5b63faca3 Updated type_traits_generator 2025-06-01 18:08:18 +01:00
John Wellbelove
aa085ca65b Merge branch 'feature/#1100-Optimise-string-class-initialisation-from-C-data' into development 2025-06-01 17:42:48 +01:00
John Wellbelove
228de00dc7 Optimisation of strings 2025-06-01 17:40: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
f178cde02d Optimisation of strings 2025-06-01 10:57:14 +01:00
John Wellbelove
31caeec248 Optimisation of strings 2025-05-31 21:51:48 +01:00
John Wellbelove
0428118553 Optimisation of strings 2025-05-31 21:47:25 +01:00
John Wellbelove
a5b15136d7 Optimisation of strings 2025-05-30 13:52:39 +01:00
John Wellbelove
690ad2f082 Added ability to disable -Wformat-security 2025-05-30 13:52:39 +01:00
John Wellbelove
f653279948 Added char8_t, char16_t and char32_t is _integral and is_signed traits 2025-05-30 13:52:38 +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
John Wellbelove
045535caff Optimisation of strings 2025-05-30 11:30:16 +01:00
John Wellbelove
d913bda0ea Added ability to disable -Wformat-security 2025-05-29 20:19:28 +01:00
John Wellbelove
ffc4666fe9 Added char8_t, char16_t and char32_t is _integral and is_signed traits 2025-05-29 20:19:02 +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
John Wellbelove
f2ec53a344 Updated release 2025-05-27 19:21:21 +01:00
John Wellbelove
4cd2a6ed6e Refactored hfsm receive function 2025-05-27 17:07:58 +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
John Wellbelove
daeb4bdbcd Updated version and release 2025-05-25 23:12:27 +01:00
John Wellbelove
f950133d51 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2025-05-25 22:41:16 +01:00
TheComet
b62a6d0d1d
Make public function definition inline (#1106)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-05-25 22:40:36 +01:00
John Wellbelove
2e3b91a19b Fixed missing return in compare function 2025-05-25 19:34:10 +01:00
John Wellbelove
c78b5ca76a Added inline namespaces
Added missing comparison operators
Replaced 'typedef' with 'using'
2025-05-25 19:17:49 +01:00
John Wellbelove
a0d81170c8 Added inline namespaces 2025-05-25 19:07:18 +01:00
John Wellbelove
30281b2a1d Syntax stlye chnage 2025-05-25 19:05:19 +01:00
mlandersonjlg
1ebc659c29
Add IWYU pragmas to private headers which provide library symbols (#1103)
* 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.

* Add full West support for ETL (#1075)

This will allow ETL to be included via west in a zephyr build without any additional wrappers or external kconfigs.

Signed-off-by: Zach Van Camp <zach.vancamp@etcconnect.com>
Co-authored-by: Zach Van Camp <zach.vancamp@etcconnect.com>

* Add IWYU pragmas to private headers which provide library symbols
This prevents warnings in clang compiler and IWYU tool
https://clangd.llvm.org/guides/include-cleaner#iwyu-pragmas
https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md#iwyu-pragma-export

---------

Signed-off-by: Zach Van Camp <zach.vancamp@etcconnect.com>
Co-authored-by: Zach Van Camp <marshmilo100@gmail.com>
Co-authored-by: Zach Van Camp <zach.vancamp@etcconnect.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-05-21 15:24:06 +01:00
John Wellbelove
b13b2ae93c Removed redundant code 2025-05-21 12:35:43 +01:00
John Wellbelove
ca12a2ec0c Use etl::clamp for setting value in cyclic_value 2025-05-21 12:29:27 +01:00
John Wellbelove
f33c40001f Added get_token_list to string_utilities to retrieve multiple tokens 2025-05-21 10:21:30 +01:00
Jędrzej Boczar
95a4b107c7
Fix numeric overflow in bip buffer's get_write_reserve (#1088) 2025-05-20 08:32:11 +01:00
John Wellbelove
fc71a9a10f Updated version to 20.41.0 2025-05-19 12:33:51 +01:00
John Wellbelove
30003cc9c4 Fixed signed/unsigned warning 2025-05-19 12:32:20 +01:00
John Wellbelove
67396c94ef Changed make_array to ETL_NOEXCEPT 2025-05-19 12:31:57 +01:00
John Wellbelove
152581b81b Updated type_traits generator 2025-05-19 09:02:32 +01:00
John Wellbelove
c133c4d8c0 #1102 Optimise clear of sequence containers for trivially destructible types 2025-05-18 18:09:53 +01:00
John Wellbelove
79fb8ba183 Replaced etl::is_duration with etl::is_specialization 2025-05-18 18:09:16 +01:00
John Wellbelove
f69d39e220 Allow zero sized etl::array 2025-05-18 16:07:47 +01:00
John Wellbelove
66392ba8fe Fixed constexpr labels + other small changes to fix syntax check errors. 2025-05-18 15:53:03 +01:00
John Wellbelove
3f138f68b9 Fixed constexpr labels + other small changes to fix syntax check errors. 2025-05-18 13:42:08 +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
01e30c8f53 #1096 bit_stream_reader constructors do not accept const pointers 2025-05-15 09:45:23 +01:00
John Wellbelove
94e24fd513 #1095 bit_stream_writer::empty() compares the wrong values to determine empty or not 2025-05-15 09:22:14 +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
John Wellbelove
fe592d5d19 Fixed C++03 compatibility 2025-05-13 22:58:53 +01:00
John Wellbelove
d577dc7256 Fixed C++03 compatibility 2025-05-13 22:44:22 +01:00
John Wellbelove
e3aa7cb46c Fixed C++03 compatibility 2025-05-13 22:11:45 +01:00
Petr
ce9b774760
Fixed compilation errors in algorithm.h in C++03 and compiler warning… (#1080)
* 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.

* Add full West support for ETL (#1075)

This will allow ETL to be included via west in a zephyr build without any additional wrappers or external kconfigs.

Signed-off-by: Zach Van Camp <zach.vancamp@etcconnect.com>
Co-authored-by: Zach Van Camp <zach.vancamp@etcconnect.com>

* Fixed compilation errors in algorithm.h in C++03 and compiler warnings in gcc older than 4.6

---------

Signed-off-by: Zach Van Camp <zach.vancamp@etcconnect.com>
Co-authored-by: Zach Van Camp <marshmilo100@gmail.com>
Co-authored-by: Zach Van Camp <zach.vancamp@etcconnect.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-05-13 21:17:41 +01:00
John Wellbelove
270cb33338 Merge updates 2025-05-13 08:32:59 +01:00
John Wellbelove
875d78d015 Fixed buffer size for etl::chrono::month_weekday hash 2025-05-13 08:29:14 +01:00
John Wellbelove
6eff1749ba Added check for C++03 or lower 2025-05-13 08:28:07 +01:00
John Wellbelove
a9393b96ba Updated comments 2025-05-13 08:27:43 +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
John Wellbelove
b6300d97ff C++03 compatibiity to to_underlying 2025-05-07 07:24:39 +01:00