2279 Commits

Author SHA1 Message Date
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