2467 Commits

Author SHA1 Message Date
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
John Wellbelove
5094a0a9e1 Added C++03 etl::is_enum 2025-05-07 07:23:26 +01:00
John Wellbelove
708c8c0d3a Added largest.h include to algorithm.h to allow C++03 compatibiity to four parameter copy. 2025-05-07 07:23:07 +01:00
John Wellbelove
53b7acffe9 Added largest.h include to algorithm.h to allow C++03 compatibiity to four parameter copy. 2025-05-07 07:21:14 +01:00
John Wellbelove
d1f118bb79 Minor style changes 2025-05-07 07:20:08 +01:00
Roland Reichwein
ba487bcb04
Add take() to etl::span (#1083) 2025-05-06 08:52:51 +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
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
a1ec613630 Fixed parameter shadowing warnings 2025-04-30 12:21:36 +01:00
John Wellbelove
2b141e0f22 Fixed tests to be compatible with std::chrono 2025-04-30 12:07:15 +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
e7cbc10df8 Added experimental system_clock, time_point, and time_zone classes 2025-04-28 19:59:32 +01:00
John Wellbelove
39f17a94b8 Added floating point duration types 2025-04-28 19:58:39 +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
John Wellbelove
d604d40648 Added etl::chrono::hh_mm_ss 2025-04-25 18:07:43 +01:00
John Wellbelove
ee748eb6cb Updates to chrono classes 2025-04-22 20:16:52 +01:00
John Wellbelove
a27aa2a556 Full etl:chrono::duration implementation and unit tests 2025-04-20 13:33:30 +01:00
John Wellbelove
fedf429d02 Merge branch 'development' into feature/add-time-date-classes
# Conflicts:
#	.gitignore
#	include/etl/platform.h
#	include/etl/ratio.h
#	test/CMakeLists.txt
#	test/test_ratio.cpp
#	test/vs2022/etl.vcxproj
#	test/vs2022/etl.vcxproj.filters
2025-04-19 12:30:36 +01:00
John Wellbelove
5a02c061e9 Changes merged from chrono updates 2025-04-18 11:30:43 +01:00
John Wellbelove
bc158cbcbc Updates to chrono classes 2025-04-18 10:50:48 +01:00
John Wellbelove
38c9cab2f7 Minor style change 2025-04-17 14:06:34 +01:00
John Wellbelove
88adbab3f4 Added exclusive_disjunction 2025-04-17 10:16:09 +01:00
John Wellbelove
b966e2aca7 Minor style change 2025-04-17 10:15:12 +01:00
John Wellbelove
459709bff5 Minor style change 2025-04-16 19:33:24 +01:00
John Wellbelove
01f7cf2b17 C++11 compatibility updates 2025-04-15 19:50:31 +01:00
John Wellbelove
192703be9f C++11 compatibility updates 2025-04-15 08:23:09 +01:00
John Wellbelove
2f7cab3520 C++11 compatibility updates 2025-04-15 07:54:22 +01:00
John Wellbelove
7726faaf97 Synchronised type_traits.h with generator 2025-04-14 17:18:35 +01:00
John Wellbelove
b6e21ca57d Refactored some traits to be implemented by etl::conjunction and etl::disjunction 2025-04-14 09:52:25 +01:00
John Wellbelove
d9af24f34b Sopporting changes for etl::tuple 2025-04-14 09:51:28 +01:00
John Wellbelove
2fd887ecc3 C++03 compatibility for etl::typed_storage 2025-04-14 09:50:49 +01:00
John Wellbelove
f85bac450c Added etl::tuple 2025-04-14 09:50:09 +01:00
John Wellbelove
73308ede00 Made is_truncated available for all configurations 2025-04-12 15:04:21 +01:00
Mario Luzeiro
520bcf876b
fix missing is_secure function when building without ETL_HAS_STRING_CLEAR_AFTER_USE (#1067) 2025-04-12 10:52:36 +01:00
John Wellbelove
209e8ceedd Added C++03 compatibility 2025-04-12 10:46:27 +01:00
John Wellbelove
9bbd4763b0 Merge branch 'pull-request/#1023-Alignment-typed-storage' of https://github.com/ETLCPP/etl into pull-request/#1023-Alignment-typed-storage 2025-04-02 16:19:49 +01:00
Roland Reichwein
7d91e1f152
Alignment typed storage (#1023)
* Add etl::typed_storage based on etl::aligned_storage_as

* Have create() instead of emplace()
2025-04-02 15:59:37 +01:00
John Wellbelove
a6ed8bd4e9 Remove unnecessary asserts 2025-04-01 09:43:02 +01:00
John Wellbelove
e46563fafc Work in progress 2025-03-31 20:25:33 +01:00
John Wellbelove
83e8473864 Work in progress 2025-03-31 11:25:25 +01:00
John Wellbelove
21ea151532 #1056 Bug: variadic_variant doesn't use the type_id_t type to store type_id 2025-03-28 15:35:45 +00:00
John Wellbelove
6508e61153 etl::span constexpr fix 2025-03-28 15:11:29 +00:00
John Wellbelove
60041bf56a #1057 ETL_DECLARE_DEBUG_COUNT increases RAM usage even when ETL_DEBUG_COUNT NOT defined 2025-03-28 11:19:20 +00:00
John Wellbelove
7e85fd7926 #1057 ETL_DECLARE_DEBUG_COUNT increases RAM usage even when ETL_DEBUG_COUNT NOT defined 2025-03-28 11:16:08 +00:00
John Wellbelove
dac1602291 Merge branch 'pull-request/#1055-Add-enable_if-restriction-for-span-constructor-from-c-array' into development
# Conflicts:
#	include/etl/span.h
#	test/test_span_fixed_extent.cpp
2025-03-28 10:10:52 +00:00
John Wellbelove
077518f4fb Added ETL_ASSERT for copy construction of dynamic span to fixed span
Asserts if the sizes are not equal
2025-03-28 10:07:21 +00:00
Andreas
9953c4d139 Returning const ref of member from const member function (#1052)
The `const` marked function needs to return a `const` reference to a member variable

Co-authored-by: Andreas Pelczer <pelczer@stoerk-tronic.com>
2025-03-27 15:25:43 +00:00
John Wellbelove
92cc068f52 Added etl::monostate as a separate header monostate.h so that it can be used without have to include variant.h 2025-03-27 15:25:42 +00:00
John Wellbelove
aacde24aa5 Changed span_base to span_tag
Removed #include of <span>
2025-03-27 15:25:41 +00:00
mike919192
c1cc9f584b Potential fix for span construct (#1051)
* Try fix for span constructors

* Make base class public
2025-03-27 15:24:44 +00:00
John Wellbelove
5852ab3b74 Refactored variant_variadic to use etl::nth_type for etl::variant_alternative implementation
Refactored C++11 & C++14 support.
2025-03-27 15:24:43 +00:00
John Wellbelove
13bb9a6df8 Comments for nth_type 2025-03-27 15:24:42 +00:00
mike919192
418513f3f4 Implement << operator for std basic_ostream and etl string_view (#1040)
* Implement << operator for std basic_ostream and etl string_view

* Implement << operator for std basic_ostream and etl ibasic_string.  Still working through tests

* Should be all tests

* Fix comment
2025-03-27 15:24:42 +00:00
John Wellbelove
5d0a77dc76 Modified etl::variant_variadic to use etl::type_list in place of etl::parameter_pack 2025-03-27 15:24:40 +00:00
John Wellbelove
d4f1c89ff4 Refactored and simplified some features of etl::type_list
Removed nth_type specialisation for etl::type_list
2025-03-27 15:24:40 +00:00
John Wellbelove
a86b124019 Attempt to fix some sanitizer issues for tests 2025-03-27 15:24:39 +00:00
John Wellbelove
ebc588a477 Added etl::index_of_type as a complement to etl::nth_type 2025-03-27 15:24:38 +00:00
John Wellbelove
34f536548f Renamed type_list_index_of to type_list_index_of_type 2025-03-27 15:24:38 +00:00
John Wellbelove
137a5f58f2 Added etl::type_list_type_at_index 2025-03-27 15:24:37 +00:00
Roland Reichwein
d9d9ae1e53 Add traits to type_list (#1044) 2025-03-27 15:24:36 +00:00
John Wellbelove
9d74b9c093 Removed duplicated header includes 2025-03-27 15:24:34 +00:00
John Wellbelove
ecf2966e40 Minor format change 2025-03-27 15:23:46 +00:00
rolandreichweinbmw
a26fed1a89 etl::span: Add advance(), copy(), reinterpret_as() (#1024)
* etl::span: Add advance(), copy(), reinterpret_as()

* Added further tests for span::reinterpret_as

* Fix size of unaligned_type on Windows

Multiple inheritance leads to additional 1 byte for the second base class.
Fixing it by not inheriting but aggregating via typedef.
2025-03-27 15:23:45 +00:00
John Wellbelove
90e432cd43 Added ETL_HAS_ATOMIC_ALWAYS_LOCK_FREE macro and has_atomic_always_lock_free trait
Fixed coditional unit tests in test_atomic
2025-03-27 15:23:45 +00:00
John Wellbelove
1274ba263b Integration of contains and contains_node 2025-03-27 15:23:44 +00:00
rolandreichweinbmw
a6e64af085 Add contains() and contains_node() to etl::intrusive_forward_list and etl::intrusive_list (#1036)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-03-27 15:23:43 +00:00
rolandreichweinbmw
a733502359 Intrusive forward list add remove by pointer (#1026)
* Add intrusive_forward_list::remove() element by pointer

* Add test
2025-03-27 15:23:43 +00:00
John Wellbelove
9c22c6ce50 Added static assert for variadic constructor
Fixed missing this-> prefix for current_size
2025-03-27 15:23:42 +00:00
John Wellbelove
6e7df8c581 Added erase from pointer to node 2025-03-27 15:23:41 +00:00
John Wellbelove
74cb40c6e1 Added variadic contruction
Added erase from pointer to node
2025-03-27 15:23:41 +00:00
rolandreichweinbmw
ef2337cfe5 Cleanup (#1039) 2025-03-27 15:23:28 +00:00
John Wellbelove
b5ee8fb259 Modified create_linked_list functions to not null terminal link pointers 2025-03-27 15:23:27 +00:00
John Wellbelove
8890f43918 Added variadic constructors 2025-03-27 15:23:26 +00:00
John Wellbelove
e103d0959f Added etl::create_linked_list and etl::detach_linked_list to the intrusive link utilities
# Conflicts:
#	include/etl/intrusive_links.h
2025-03-27 15:23:00 +00:00
John Wellbelove
4197a1ee8a Added static assert for variadic constructor
Fixed missing this-> prefix for current_size
2025-03-27 15:22:42 +00:00
John Wellbelove
9a07ef9cae Improved implementation of etl::is_base_of_all 2025-03-27 15:22:41 +00:00
John Wellbelove
13dfaaa748 Added erase from pointer to node 2025-03-27 15:22:40 +00:00
John Wellbelove
277cd68301 Added variadic contruction
Added erase from pointer to node
2025-03-27 15:22:40 +00:00
rolandreichweinbmw
2b437a60b2 Cleanup (#1039) 2025-03-27 15:22:39 +00:00
John Wellbelove
222cf93056 Modified create_linked_list functions to not null terminal link pointers 2025-03-27 15:22:38 +00:00
John Wellbelove
13ee4bb411 Added variadic constructors 2025-03-27 15:22:38 +00:00
John Wellbelove
44a0d7c3c5 Added etl::create_linked_list and etl::detach_linked_list to the intrusive link utilities 2025-03-27 15:22:37 +00:00
mike919192
a75d1d2a30
Add enable_if restriction for span constructor from c array (#1055)
* Add enable_if restriction for span constructor from c array

* Try to simplify enable if

* Revert "Try to simplify enable if"

This reverts commit b133835f8cfe43e75478f2a8df06ad5265b7f163.
2025-03-27 15:15:31 +00:00
John Wellbelove
a2119d46e4 Merge branch 'pull-request/#1052-Returning-const-ref-of-member-from-const-member-function' into development 2025-03-26 13:10:43 +00:00
Andreas
c547b7804f
Returning const ref of member from const member function (#1052)
The `const` marked function needs to return a `const` reference to a member variable

Co-authored-by: Andreas Pelczer <pelczer@stoerk-tronic.com>
2025-03-26 12:17:23 +00:00
John Wellbelove
af725afc79 Added etl::monostate as a separate header monostate.h so that it can be used without have to include variant.h 2025-03-26 08:34:13 +00:00
John Wellbelove
2bbc3c3f81 Merge branch 'pull-request/#1051-Potential-fix-for-span-construct' into development
# Conflicts:
#	CONTRIBUTING.md
#	include/etl/span.h
#	test/test_span_fixed_extent.cpp
2025-03-26 08:04:33 +00:00
John Wellbelove
e9adc288c6 Changed span_base to span_tag
Removed #include of <span>
2025-03-25 19:47:32 +00:00
mike919192
d794e84c54
Potential fix for span construct (#1051)
* Try fix for span constructors

* Make base class public
2025-03-25 18:16:44 +00:00
John Wellbelove
d6e6816ffc Refactored variant_variadic to use etl::nth_type for etl::variant_alternative implementation
Refactored C++11 & C++14 support.
2025-03-18 14:45:38 +00:00
John Wellbelove
32f567f0bc Comments for nth_type 2025-03-17 17:59:50 +00:00
mike919192
ecf5d9bca3 Implement << operator for std basic_ostream and etl string_view (#1040)
* Implement << operator for std basic_ostream and etl string_view

* Implement << operator for std basic_ostream and etl ibasic_string.  Still working through tests

* Should be all tests

* Fix comment
2025-03-17 08:54:28 +00:00
John Wellbelove
bcf5ec4985 Merge branch 'pull-request/#1044-Add-traits-to-type_list' into development 2025-03-16 19:10:06 +00:00
John Wellbelove
3360eae62d Modified etl::variant_variadic to use etl::type_list in place of etl::parameter_pack 2025-03-16 19:09:41 +00:00
John Wellbelove
03ca499e5e Refactored and simplified some features of etl::type_list
Removed nth_type specialisation for etl::type_list
2025-03-16 19:08:55 +00:00
John Wellbelove
495ea2b943 Attempt to fix some sanitizer issues for tests 2025-03-16 19:07:25 +00:00
John Wellbelove
36b4d51baf Added etl::index_of_type as a complement to etl::nth_type 2025-03-16 19:06:34 +00:00
John Wellbelove
53887fa105 Renamed type_list_index_of to type_list_index_of_type 2025-03-14 15:46:25 +00:00
John Wellbelove
f1d5b16d38 Added etl::type_list_type_at_index 2025-03-09 10:47:24 +00:00
Roland Reichwein
d4813dff86
Add traits to type_list (#1044) 2025-03-09 09:41:15 +00:00
John Wellbelove
c43d9eaea1 Removed duplicated header includes 2025-03-04 09:26:39 +00:00
John Wellbelove
2dac573963 Merge branch 'pull-request/#1024-etl-span-Add-advance(),-copy(),-reinterpret_as()' of https://github.com/ETLCPP/etl into pull-request/#1024-etl-span-Add-advance(),-copy(),-reinterpret_as()
# Conflicts:
#	include/etl/span.h
2025-03-03 10:58:50 +00:00
John Wellbelove
987cb4f78b Minor format change 2025-03-03 10:57:26 +00:00
rolandreichweinbmw
fc638a92a6 etl::span: Add advance(), copy(), reinterpret_as() (#1024)
* etl::span: Add advance(), copy(), reinterpret_as()

* Added further tests for span::reinterpret_as

* Fix size of unaligned_type on Windows

Multiple inheritance leads to additional 1 byte for the second base class.
Fixing it by not inheriting but aggregating via typedef.
2025-03-03 10:04:09 +00:00
John Wellbelove
071a983cba Added ETL_HAS_ATOMIC_ALWAYS_LOCK_FREE macro and has_atomic_always_lock_free trait
Fixed coditional unit tests in test_atomic
2025-03-03 10:03:42 +00:00
rolandreichweinbmw
d5bea3a1f1
etl::span: Add advance(), copy(), reinterpret_as() (#1024)
* etl::span: Add advance(), copy(), reinterpret_as()

* Added further tests for span::reinterpret_as

* Fix size of unaligned_type on Windows

Multiple inheritance leads to additional 1 byte for the second base class.
Fixing it by not inheriting but aggregating via typedef.
2025-03-03 08:52:12 +00:00
John Wellbelove
6124367f28 Integration of contains and contains_node 2025-03-02 12:51:17 +00:00
rolandreichweinbmw
12743be9e2
Add contains() and contains_node() to etl::intrusive_forward_list and etl::intrusive_list (#1036)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-03-02 11:09:32 +00:00
rolandreichweinbmw
64ae22a093 Intrusive forward list add remove by pointer (#1026)
* Add intrusive_forward_list::remove() element by pointer

* Add test
2025-03-02 11:05:59 +00:00
John Wellbelove
abe765a9cf Added static assert for variadic constructor
Fixed missing this-> prefix for current_size
2025-03-02 10:20:44 +00:00
John Wellbelove
6459ce7b5f Improved implementation of etl::is_base_of_all 2025-03-02 09:43:31 +00:00
John Wellbelove
dc21da2cd4 Merge branch 'pull-request/#1026-Intrusive-forward-list-add-remove-by-pointer' into development
# Conflicts:
#	include/etl/intrusive_forward_list.h
2025-03-02 08:32:28 +00:00
John Wellbelove
68dac39104 Added erase from pointer to node 2025-03-02 08:31:14 +00:00
John Wellbelove
2746cf4060 Added variadic contruction
Added erase from pointer to node
2025-03-02 08:30:54 +00:00
rolandreichweinbmw
37539a2761
Intrusive forward list add remove by pointer (#1026)
* Add intrusive_forward_list::remove() element by pointer

* Add test
2025-03-01 18:24:30 +00:00
rolandreichweinbmw
4e4f7ddbb1
Cleanup (#1039) 2025-03-01 17:57:27 +00:00
John Wellbelove
acc0b4bb89 Modified create_linked_list functions to not null terminal link pointers 2025-03-01 13:40:49 +00:00
John Wellbelove
260a3f4a48 Added variadic constructors 2025-03-01 13:39:51 +00:00
John Wellbelove
a28cbddd4b Added etl::create_linked_list and etl::detach_linked_list to the intrusive link utilities 2025-02-27 10:02:56 +00:00
John Wellbelove
c882a9c500 Update version 2025-02-23 12:47:19 +00:00
John Wellbelove
3fafc61bba #1032 Tasking Compiler Failure For parameter_pack.h 2025-02-23 12:42:28 +00:00
John Wellbelove
109d45c646 Added additional checks for self assignment 2025-02-22 13:59:48 +00:00
John Wellbelove
da5404b748 #1031 etl::string is invalid if calling assign() with itself 2025-02-21 10:52:47 +00:00
John Wellbelove
e9ed2fe044 Update class generators to match code changes 2025-02-21 08:56:58 +00:00
John Wellbelove
7af020bde8 Updated message_router_generator.h 2025-02-19 20:11:53 +00:00
John Wellbelove
52c6bca34d Improve efficiency of etl::string_view::compare with text pointer 2025-02-17 19:11:01 +00:00
John Wellbelove
baf12b1fcb Changed etl::message_packet to not require virtual messages 2025-02-17 10:42:25 +00:00
John Wellbelove
ac8566ade2 Merge branch 'development' into pull-request/#1027-Add-etl-make_span() 2025-02-11 14:55:56 +00:00
rolandreichweinbmw
f02c89a867
Add etl::make_span() (#1027) 2025-02-11 11:52:42 +00:00
John Wellbelove
58c57b0a52 Made bool operator explicit for C++11 and above 2025-02-07 18:27:20 +00:00
John Wellbelove
1f897e1095 Added etl::function traits
Removed private delegate function_traits
Added etl::type_list + etl::nth_type overloads
2025-02-07 18:26:39 +00:00
John Wellbelove
dd4d0088c5 Added ETL_NODISCARD to make_delegete functions 2025-02-04 14:05:11 +00:00
John Wellbelove
37fd5b7c45 Attempt to fix Github CI errors 2025-02-03 16:19:47 +00:00
John Wellbelove
574da35b10 Attempt to fix Github CI errors 2025-02-03 15:03:28 +00:00
John Wellbelove
6872131920 Updates to CI scripts 2025-02-01 19:44:55 +00:00
John Wellbelove
548c2be4c3 Merge branch 'hotfix/#1019-UB-when-passing-a-temporary-lambda-to-a-delegate' into development 2025-02-01 17:55:30 +00:00
John Wellbelove
344618d744 Merge branch 'feature/#1022-Add-option-to-disable-non-lock-free-atomics' into development 2025-02-01 17:55:10 +00:00
John Wellbelove
d26c1a105b Merge branch 'pull-request/#1021-Some-minor-cleanup-changes' into development 2025-02-01 17:54:42 +00:00
John Wellbelove
96cdb2cbb1 Re-included header 2025-02-01 17:54:25 +00:00
John Wellbelove
8b2009b45c Added is_always_lock_free member constant to etl::atomic 2025-02-01 15:19:07 +00:00
John Wellbelove
fcbbbeaf44 #1009 etl::expected doesn't compile with legacy_variant
Added in_place constructor
2025-02-01 08:59:20 +00:00
rolandreichweinbmw
41f5c0b6bc
Cleanup (#1021)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-01-31 14:44:43 +00:00
John Wellbelove
d0468d813c Changed etl::addressof to etl::to_address 2025-01-28 11:16:34 +00:00
John Wellbelove
ad9bda90bc Added etl::to_address 2025-01-28 11:16:04 +00:00
John Wellbelove
101cfd598f Disabled initialisation of a delegate from a temporary lambda 2025-01-27 09:13:18 +00:00
John Wellbelove
42dae979da Merge branch 'pull-request/#1016-Allow-compile-time-CRC-calculation' into development 2025-01-24 17:49:04 +00:00
John Wellbelove
b3f7d82900 Added constexpr to CRC1 2025-01-24 17:48:43 +00:00
Zob314
14b50c6541
Allow compile time CRC calculation (#1016)
* Making crc constexpr for c++14. Allows compile time CRC computation.

* Fix syntax when using c++03 or `ETL_FORCE_NO_ADVANCED_CPP`

* Remove use of `ETL_FORCE_NO_ADVANCED_CPP` option since it is no longer used.

---------

Co-authored-by: Zach O'Brien <zach.obrien@tortugaagtech.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-01-24 15:20:05 +00:00
John Wellbelove
c3d3a326f7 Merge branch 'pull-request/#1014-Added-missing-rational-arithmetic-functions-from-ratio' into development
# Conflicts:
#	.gitignore
#	test/vs2022/etl.vcxproj.filters
2025-01-23 09:40:42 +00:00
John Wellbelove
44df80219b Changed 'value' to 'type'
Added C++14 constant tests
2025-01-23 09:38:30 +00:00
rolandreichweinbmw
360f503bcf
Added missing rational arithmetic functions from <ratio> (#1014)
* Added ratio traits

* Fix unused test suite in < C++14 case

* Port to C++11

* Fix header includes
2025-01-22 17:15:53 +00:00
John Wellbelove
208dea6616 Merge branch 'feature/#993-Need-lighter-weight-ETL_ASSERT' into development
# Conflicts:
#	.gitignore
#	test/vs2022/etl.vcxproj.filters
2025-01-22 17:13:05 +00:00
John Wellbelove
6c6c7b00a5 Remove redundant ETL_FORCE_NO_ADVANCED_CPP macro 2025-01-22 14:51:18 +00:00
John Wellbelove
efa7c19e8b Fixed etl::expected in-place constructors 2025-01-22 14:50:42 +00:00
John Wellbelove
20ef1a34fc Removed constexpr from unaligned_type 2025-01-21 17:51:18 +00:00
John Wellbelove
2e6686543b unaligned_type refactor 2025-01-21 17:51:17 +00:00
John Wellbelove
f05e9ff651 Pulled out unaligned_copy to a base class 2025-01-21 17:51:15 +00:00
rolandreichweinbmw
a563aed7fc Fixed memory.h: mem_copy, mem_move, mem_compare for pointers to const (#1005) 2025-01-21 17:48:53 +00:00
rolandreichweinbmw
473bfa33d9 Fix span fixed extent empty (#1007) 2025-01-21 17:48:38 +00:00
John Wellbelove
c6c29ca138 Fixed <bit> include for C++20 & STL 2025-01-21 17:48:37 +00:00
John Wellbelove
1f00d06869 Updates to singleton_base 2025-01-21 17:48:35 +00:00
rolandreichweinbmw
8ac05b161d Add singleton_base with test (#1002) 2025-01-21 17:48:00 +00:00
rolandreichweinbmw
00ac508e07 Add max_item_size() to etl::ipool (#1001) 2025-01-21 17:47:58 +00:00
John Wellbelove
153cdd8b9a Allow etl::type_def to be trivially copyable 2025-01-21 17:47:57 +00:00
John Wellbelove
ee95ab4db2 Updated unaligned_type constructors and tests 2025-01-21 17:47:55 +00:00
John Wellbelove
71268c4cf3 Updated packed macro 2025-01-21 17:47:31 +00:00
John Wellbelove
75aca06f2b Packed unaligned_type (#989)
This way, unaligned_types like etl::be_uint32_t can be used in places where POD types are expected.
2025-01-21 17:43:38 +00:00
jonasgampigbmw
b34e3a6f60
#1017 Fix empty range handling of min/max_element (#1018) 2025-01-21 17:08:38 +00:00
John Wellbelove
778351a49e Removed constexpr from unaligned_type 2025-01-20 13:50:36 +00:00
John Wellbelove
10f21a0377 unaligned_type refactor 2025-01-18 14:12:56 +00:00
John Wellbelove
1b42b77608 Pulled out unaligned_copy to a base class 2025-01-04 13:31:37 +00:00
John Wellbelove
9bb2edfd78 Merge branch 'pull-request/#1002-Add-singleton_base' into development
# Conflicts:
#	.gitignore
#	include/etl/file_error_numbers.h
2024-12-26 15:52:01 +00:00
John Wellbelove
c1a1d24712 Updates to singleton_base 2024-12-26 15:50:32 +00:00
rolandreichweinbmw
5e3b029af0
Add singleton_base with test (#1002) 2024-12-26 13:27:47 +00:00
John Wellbelove
3d43922845 Merge branch 'pull-request/#1001-Add-max_item_size()-to-etl-ipool' into development 2024-12-26 13:24:21 +00:00
rolandreichweinbmw
f0ebf26b6d
Add max_item_size() to etl::ipool (#1001) 2024-12-26 13:15:14 +00:00
John Wellbelove
c842e807ef Allow etl::type_def to be trivially copyable 2024-12-26 13:12:11 +00:00
John Wellbelove
b28c485d1a Updated unaligned_type constructors and tests 2024-12-26 10:58:10 +00:00
John Wellbelove
3b54c4e7a2 Merge branch 'pull-request/#989-Packed-unaligned_type' into development
# Conflicts:
#	.gitignore
2024-12-26 09:14:35 +00:00
John Wellbelove
91a345bb17 Added experimental assert function handler 2024-12-25 17:42:06 +00:00
John Wellbelove
4f38779219 Updated packed macro 2024-12-25 17:37:18 +00:00
John Wellbelove
56c95b474b Packed unaligned_type (#989)
This way, unaligned_types like etl::be_uint32_t can be used in places where POD types are expected.
2024-12-20 10:28:02 +00:00
John Wellbelove
4cbef7fb6e Merge branch 'pull-request/#990-Add-contains-method-to-etl-unordered_map-and-etl-unordered_set' into development 2024-12-19 18:16:39 +00:00
John Wellbelove
191eaae225 Added transparent comparator overloads of contains() 2024-12-19 16:44:12 +00:00
John Wellbelove
784d95acaf Added additional transparent comparators to unordered containers 2024-12-19 14:33:59 +00:00
John Wellbelove
0f487fa126 Make 'packed' have better cross platform functionality 2024-12-19 14:33:57 +00:00
rolandreichweinbmw
22c1ed4058 Packed unaligned_type (#989)
This way, unaligned_types like etl::be_uint32_t can be used in places where POD types are expected.
2024-12-19 14:33:56 +00:00
John Wellbelove
bde0d7d584 Changed etl::mem_cast to support bidirectional iterators 2024-12-19 14:33:55 +00:00
John Wellbelove
99b2dacb6c Added return reference from stack::emplace 2024-12-19 14:33:53 +00:00
rolandreichweinbmw
00b6c9fcb4 Return reference from emplace() in etl::queue (#992) 2024-12-19 14:33:52 +00:00
John Wellbelove
6b88bef8ab Added uncopyable to VS2022 project and syntax-check scripts 2024-12-19 14:33:51 +00:00
rolandreichweinbmw
72a2ad3fe9 Add uncopyable.h, class uncopyable (#985)
* Add uncopyable.h, class uncopyable

* Added destructor and unit tests for etl::uncopyable
2024-12-19 14:33:49 +00:00
John Wellbelove
1f43b2aa96 Added constexpr 2024-12-19 14:33:46 +00:00
rolandreichweinbmw
e7a17a5fb1 Added const iterators to span (#986) 2024-12-19 14:33:45 +00:00
rolandreichweinbmw
cd1805b1d2 Added return to etl::optional emplace, fixed typo (#982) 2024-12-19 14:32:20 +00:00
John Wellbelove
9ed9b90f1d Fixed merge issues 2024-12-19 14:32:19 +00:00
John Wellbelove
7ae2c7626e Fixed shadowing warnings 2024-12-19 14:31:53 +00:00
John Wellbelove
58ff15947d Fixed possible null dereference for etl::multi_span operator -> 2024-12-19 14:31:51 +00:00
John Wellbelove
3deaaeb180 Added contains member function to string_view 2024-12-19 14:31:48 +00:00
John Wellbelove
a6ef8ec08d Added member function resize_and_overwrite 2024-12-19 14:31:47 +00:00
John Wellbelove
7552aa06db Removed remaining std::u8string_view functions 2024-12-19 14:31:46 +00:00
John Wellbelove
bdb8956e8d Made construction from std::basic_string_view explicit 2024-12-19 14:31:44 +00:00
John Wellbelove
6ce4fa40bb Added starts_with and ends_with to basic_string 2024-12-19 14:31:43 +00:00
John Wellbelove
7adf9adfcf Removed std::string_view interface
Added contains member functions
2024-12-19 14:31:41 +00:00
John Wellbelove
9311819fa4 Fixed C++ standard compatibility issues 2024-12-19 14:31:40 +00:00
John Wellbelove
cbe4d5abe0 Added string_view API.
For all string types except _ext
2024-12-19 14:31:38 +00:00
John Wellbelove
b1c6489ac5 Added construction from std::basic_string_view 2024-12-19 14:31:37 +00:00
John Wellbelove
12b46728ab Added string_view API.
Created common implementations for member algorithms.
2024-12-19 14:30:31 +00:00
John Wellbelove
05ed5ff77c Change internal constants from all-caps snake case to initial-caps snake case 2024-12-19 14:30:30 +00:00
mike919192
21ab37f773 Add at method to span (#975)
* Update README.md

* Add at method to span

---------

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2024-12-19 14:30:27 +00:00
John Wellbelove
223f1cee6e Fixed syntax issue between GCC and Clang/Visual Studio 2024-12-19 14:30:25 +00:00
John Wellbelove
0a41693271 Fixed syntax issue between GCC and Clang/Visual Studio 2024-12-19 14:30:24 +00:00
John Wellbelove
e4a6bc9c44 Fixed missing conditional macros around transparent comparator C++11 functions 2024-12-19 14:30:23 +00:00
John Wellbelove
54dc48de02 Changed comment
Simplified unit test
2024-12-19 14:30:18 +00:00
John Wellbelove
20989a187a Added new C++17 function wrappers
etl::function_as_functor
etl::function_ptr_as_functor
etl::functor_as_static
etl::member_function_as_static
etl::member_function_as_functor
2024-12-19 14:30:16 +00:00
John Wellbelove
4a1712b733 #957 Support heterogenous lookup for maps 2024-12-19 14:30:14 +00:00
John Wellbelove
d0a9d696fe Simplified definition of is_base_of 2024-12-19 14:30:13 +00:00
John Wellbelove
fd82a9c113 #959 Treat bitset with size_type 2024-12-19 14:30:11 +00:00
John Wellbelove
0026a8b908 #965 Fix accident creation of a delegate to an rvalue delegate when copying/assigning from delegate with mismatching signature
#966 A constructor for delegate with a freestanding function
2024-12-19 14:30:10 +00:00
John Wellbelove
ddef6a04ff Fixed static definition 2024-12-19 14:30:09 +00:00
John Wellbelove
297b7e6786 Redefined ETL_DEPRECATED 2024-12-19 14:30:07 +00:00
John Wellbelove
748e2357f5 Updated nth_type to handle a type list of zero length 2024-12-19 14:30:06 +00:00
John Wellbelove
07333fd1dd Updated release notes and version 2024-12-19 14:30:05 +00:00
ZachOB
6ea2388358 Fix build error in icircular_buffer::iterator and icircular_buffer::const_iterator (#956) 2024-12-19 14:30:03 +00:00
Aleksander Dejewski
602261ce39
Add contains() method to etl::unordered_map and etl::unordered_set (#990)
* Add contains() method to etl::unordered_map and etl::unordered_set

* Add contains() method to etl::unordered_multiset and etl::unordered_multimap

Use predefined variables in UT

Move contains() method to correct place in etl::unordered_set

* Fix contains() parameter type
2024-12-19 13:33:02 +00:00
John Wellbelove
a786f61860 Added additional transparent comparators to unordered containers 2024-12-17 17:10:48 +00:00
John Wellbelove
f9b2494ec9 Merge branch 'pull-request/#989-Packed-unaligned_type' into development 2024-12-16 14:58:57 +00:00
John Wellbelove
05682930e1 Make 'packed' have better cross platform functionality 2024-12-16 14:58:16 +00:00
rolandreichweinbmw
84eea5bb1f
Packed unaligned_type (#989)
This way, unaligned_types like etl::be_uint32_t can be used in places where POD types are expected.
2024-12-14 21:36:15 +00:00
John Wellbelove
d6f7d2890d Changed etl::mem_cast to support bidirectional iterators 2024-12-14 20:10:33 +00:00