5683 Commits

Author SHA1 Message Date
John Wellbelove
5dfdea7115 Removed #define ETL_DEBUG as this is a project define 2025-09-11 19:57:18 +01:00
John Wellbelove
59ec7855c1 Add force CI check on piull requests 2025-09-11 19:57:18 +01:00
John Wellbelove
bc027139e2 Delete project navis files 2025-09-11 19:57:17 +01:00
David Ockey
042a62154e 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 19:57:16 +01:00
John Wellbelove
b5e065e1c8 Updated version and release notes 2025-09-11 19:57:16 +01:00
Roland Reichwein
193b6ba3e8 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-11 19:57:15 +01:00
Roland Reichwein
ea91dabee5 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-11 19:57:15 +01:00
John Wellbelove
df30de2877 removed navis file from project 2025-09-11 19:57:14 +01:00
mike919192
999c210d28
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-10 10:52:22 +01:00
John Wellbelove
73243883ce Merge branch 'master' of https://github.com/ETLCPP/etl
# Conflicts:
#	.coderabbit.yaml
#	include/etl/alignment.h
#	support/Release notes.txt
20.43.1
2025-09-07 09:36:47 +01:00
John Wellbelove
ac7b268c32 Modified etl::typed_storage
# Conflicts:
#	include/etl/alignment.h
2025-09-07 09:31:40 +01:00
John Wellbelove
7301617708 Updated version and release notes 2025-09-07 09:26:54 +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
ea61ff7770 Updated version and release notes 2025-09-06 20:51:10 +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
John Wellbelove
8c29238116 Updated version and release notes 2025-09-04 19:53:15 +01:00
Drew Rife
4bdb55cfe6 feat: removed unreachable break statements (#1169) 2025-09-04 19:53:14 +01:00
John Wellbelove
8dc10b7a37 Updated version and release notes 2025-09-04 19:53:14 +01:00
John Wellbelove
c2143f5d6c Attempted fixes for MacOS compilation 2025-09-04 19:53:13 +01:00
John Wellbelove
99432a8e71 Attempted fixes for MacOS compilation 2025-09-04 19:53:12 +01:00
John Wellbelove
1216ab2247 Attempted fixes for MacOS compilation 2025-09-04 19:53:11 +01:00
John Wellbelove
dffb611036 Attempted fixes for MacOS compilation 2025-09-04 19:53:11 +01:00
John Wellbelove
57e52ba217 Disabled constexpr const container tests for C++11 2025-09-04 19:53:10 +01:00
John Wellbelove
90f933ff69 Updated version and release notes 2025-09-04 19:53:09 +01:00
John Wellbelove
475e6dd878 Added enhanced coderabbit configuration 2025-09-04 19:53:08 +01:00
John Wellbelove
eea7fe227d Added automatic selection of __builtin_memxxx functions for GCC and clang 2025-09-04 19:52:50 +01:00
John Wellbelove
f835daec50 Fixed compilation issues for const containers unit tests 2025-09-04 19:52:49 +01:00
John Wellbelove
ebd2edde8f Changed char* parameters to value_type* parameters 2025-09-04 19:52:48 +01:00
John Wellbelove
0676f8345f Fixes to GCC -O2 errors 2025-09-04 19:52:47 +01:00
John Wellbelove
9db992256f Added release notes 2025-09-04 19:52:47 +01:00
John Wellbelove
ece4b711f5 Added etl::typed_storage_ext and swap for same
# Conflicts:
#	include/etl/alignment.h
2025-09-04 19:52:46 +01:00
John Wellbelove
33302790ba Added etl::typed_storage_ext and swap for same 2025-09-04 19:52:45 +01:00
John Wellbelove
aea6e7da8b Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW 2025-09-04 19:52:45 +01:00
John Wellbelove
dffbd1e1ef Modified etl::typed_storage
# Conflicts:
#	include/etl/alignment.h
2025-09-04 19:52:44 +01:00
John Wellbelove
c52b6d0673 Modified etl::typed_storage 2025-09-04 19:52:07 +01:00
John Wellbelove
e2a07c98bf Added builtin mem function tests 2025-09-04 19:52:06 +01:00
John Wellbelove
e760e62dcd Updated version and release notes 2025-09-04 19:45:12 +01:00
Drew Rife
515dcf4bf6
feat: removed unreachable break statements (#1169) 2025-09-04 19:32:57 +01:00
John Wellbelove
efdfee8333 Updated version and release notes 2025-09-04 18:07:00 +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
958c331d49 Updated version and release notes 2025-09-04 11:29:02 +01:00