2478 Commits

Author SHA1 Message Date
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
John Wellbelove
9cdef8e399 Added return reference from stack::emplace 2024-12-12 19:42:54 +00:00
rolandreichweinbmw
2a77222b2c
Return reference from emplace() in etl::queue (#992) 2024-12-12 19:04:40 +00:00
John Wellbelove
aa7af8b62b Merge branch 'pull-request/#985-Add-uncopyable.h-class-uncopyable' into development 2024-12-12 18:51:53 +00:00
John Wellbelove
70da0eea06 Added uncopyable to VS2022 project and syntax-check scripts 2024-12-12 18:15:31 +00:00
rolandreichweinbmw
0ecab77151
Add uncopyable.h, class uncopyable (#985)
* Add uncopyable.h, class uncopyable

* Added destructor and unit tests for etl::uncopyable
2024-12-10 16:23:54 +00:00
John Wellbelove
978aa3f08a Added constexpr 2024-12-10 11:25:54 +00:00
rolandreichweinbmw
4f96a8424d
Added const iterators to span (#986) 2024-12-04 10:17:32 +00:00
John Wellbelove
3a5b552c82 Merge branch 'pull-request/#982-Added-return-to-etl-optional-emplace-fixed-typo' into development 2024-12-02 12:29:01 +00:00
rolandreichweinbmw
b58ba95e60
Added return to etl::optional emplace, fixed typo (#982) 2024-12-02 12:10:26 +00:00
John Wellbelove
1b76d93069 Fixed merge issues 2024-11-30 11:19:43 +00:00
John Wellbelove
f2099b5403 Merge branch 'feature/#962-Request--allow-(overload)-string-append-a-string_view' into development
# Conflicts:
#	include/etl/basic_string.h
2024-11-30 09:40:28 +00:00
John Wellbelove
ec3d20695b Fixed shadowing warnings 2024-11-27 16:36:35 +00:00
John Wellbelove
2b0690928f Fixed possible null dereference for etl::multi_span operator -> 2024-11-27 16:36:00 +00:00
John Wellbelove
c53ef6758a Added string_view API.
Created common implementations for member algorithms.
2024-11-24 15:19:12 +00:00
John Wellbelove
67ed9e8e44 Change internal constants from all-caps snake case to initial-caps snake case 2024-11-24 15:19:11 +00:00
John Wellbelove
705b6b1bae Added contains member function to string_view 2024-11-24 15:01:38 +00:00
John Wellbelove
f566076f42 Added member function resize_and_overwrite 2024-11-24 09:03:48 +00:00
John Wellbelove
89123357a6 Removed remaining std::u8string_view functions 2024-11-24 08:55:22 +00:00
John Wellbelove
75f7292447 Made construction from std::basic_string_view explicit 2024-11-24 08:53:51 +00:00
John Wellbelove
d5cd9567cd Added starts_with and ends_with to basic_string 2024-11-23 12:33:36 +00:00
John Wellbelove
a3b40b667a Removed std::string_view interface
Added contains member functions
2024-11-23 10:47:41 +00:00
John Wellbelove
bc44bf7a46 Fixed C++ standard compatibility issues 2024-11-22 12:25:02 +00:00
John Wellbelove
6559615242 Added string_view API.
For all string types except _ext
2024-11-20 09:51:02 +00:00
John Wellbelove
f5e8a5400e Added construction from std::basic_string_view 2024-11-18 20:20:53 +00:00
John Wellbelove
e8fcace1cb Added string_view API.
Created common implementations for member algorithms.
2024-11-16 14:05:14 +00:00
John Wellbelove
5828ba05c9 Change internal constants from all-caps snake case to initial-caps snake case 2024-11-16 14:05:12 +00:00
mike919192
f5eab49208
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-11-13 21:26:04 +00:00
John Wellbelove
7f66536183 Fixed syntax issue between GCC and Clang/Visual Studio 2024-11-11 13:24:21 +00:00
John Wellbelove
d3ba653e37 Fixed syntax issue between GCC and Clang/Visual Studio 2024-11-11 13:20:47 +00:00
John Wellbelove
27492b4562 Fixed missing conditional macros around transparent comparator C++11 functions 2024-11-11 13:19:59 +00:00
John Wellbelove
5b01a4b4e5 Changed comment
Simplified unit test
2024-11-10 18:00:45 +00:00
John Wellbelove
ad69fb256d 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-11-10 18:00:10 +00:00
John Wellbelove
c954c696bb #957 Support heterogenous lookup for maps 2024-11-10 18:00:08 +00:00
John Wellbelove
bce35c4927 Simplified definition of is_base_of 2024-11-10 18:00:06 +00:00
John Wellbelove
36a5b4ba16 #959 Treat bitset with size_type 2024-11-10 18:00:05 +00:00
John Wellbelove
4b7997ae17 #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-11-10 18:00:03 +00:00
John Wellbelove
586ae0cdff Fixed static definition 2024-11-10 18:00:01 +00:00
John Wellbelove
907d38f728 Redefined ETL_DEPRECATED 2024-11-10 18:00:00 +00:00
John Wellbelove
0dbbc4ba57 Updated nth_type to handle a type list of zero length 2024-11-10 17:59:58 +00:00
John Wellbelove
4071b17372 Updated release notes and version 2024-09-18 20:37:15 +01:00
ZachOB
484080b88e
Fix build error in icircular_buffer::iterator and icircular_buffer::const_iterator (#956) 2024-09-18 17:36:46 +01:00
John Wellbelove
bec9f4a2df Added etl::ratio tests 2024-09-15 14:12:40 +01:00
John Wellbelove
4741c71e34 etl::ratio work-in-progress 2024-09-14 20:02:25 +01:00
John Wellbelove
0d0b9be310 etl::duration work in progress 2024-09-13 19:55:18 +01:00
John Wellbelove
4942ff840e etl::duration work in progress 2024-09-12 14:03:05 +01:00
John Wellbelove
e6c47a198c Added tests for weekday_indexed and weekday_last 2024-09-08 17:28:52 +01:00
John Wellbelove
c0d3447818 Merge branch 'feature/#757-Add-time-date-classes' of https://github.com/ETLCPP/etl-21 into dual-licence/feature/#757-Add-time-date-classes 2024-09-07 19:34:51 +01:00
schemborerik
77ab40a72f For GCC10, we should check __cplusplus >= 201709L when determining if c++20 is supported (#949) 2024-08-31 11:56:32 +01:00
John Wellbelove
f3ad597e75 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2024-08-31 11:06:47 +01:00
John Wellbelove
46012576d1 Merge branch 'hotfix/#948-Bug-in-queue-pop-can-break-queue.empty()' into development 2024-08-31 09:42:44 +01:00
John Wellbelove
3612390888 #948 Bug in queue pop can break queue.empty() 2024-08-31 09:40:46 +01:00
John Wellbelove
10147a1868 Updates to weekday 2024-08-30 19:59:16 +01:00
John Wellbelove
f5d3c4fffa Merge branch 'feature/#757-Add-time-date-classes' of https://github.com/ETLCPP/etl into feature/#757-Add-time-date-classes
# Conflicts:
#	include/etl/chrono.h
#	include/etl/private/chrono/day.h
#	include/etl/private/chrono/duration.h
#	test/CMakeLists.txt
#	test/test_chrono_day.cpp
#	test/vs2022/etl.vcxproj
#	test/vs2022/etl.vcxproj.filters
2024-08-29 09:54:37 +01:00
John Wellbelove
a90d0f4a89 Fixed value type 2024-08-29 09:45:58 +01:00
John Wellbelove
fc0576ad95 Work in progress 2024-08-29 09:13:56 +01:00
John Wellbelove
f77d91d544 Updated syntax checks 2024-08-21 18:48:56 +01:00
John Wellbelove
af9b3deade Added the option of more logical ordering for template parameters for compile time member functions 2024-08-11 12:13:46 +01:00
John Wellbelove
e6653d3677 Added ETL_CONSTEXPR14 to etl::reverse 2024-08-10 11:12:24 +01:00
John Wellbelove
af03b44d2a Fixed floating point support for etl::unaligned_type 2024-08-09 21:36:58 +01:00
John Wellbelove
3f018ee1a7 Fixed floating point etl::unaligned_type 2024-08-08 22:58:22 +01:00
David Hebbeker
527359f535
Make include paths to private files relative (#946)
* Render include paths relative

By removing `etl/` from include paths (in `#include` statements), the path to the directory `include/` doesn't need to be provided to the preprocessor as an include path if the files in `include/etl/` are included by other means.
This has no disadvantages.
Actually the form `#include "..."` is intended to be used for relative paths in the first place.

This is relevant if one wants to include the source files from `include/etl` only indirectly.

For example we use special generated header files which wrap the include statement of the vanilla header files with diagnostic commands.
Those commands allow to disable diagnostic for ETL's files and re-enable them after the file inclusion.
Wrapper files are generated for every non-private header file.
We provide the directory with the wrapper files as include path to the preprocessor instead of the normal `include/` directory.
Thus include statements like `#include "etl/private/..."` are invalid in that case.

* Remove "etl/" from include paths in all files in `include/`.

33 findings in 4 files of 375.

See 936961949172bca5ba1418054a055e05ecb6d1d4 for explanation.
2024-08-08 07:18:17 +01:00
John Wellbelove
16cd116055 Updated version and release notes 2024-08-07 20:42:10 +01:00
John Wellbelove
81751db03e Removed C++11 restriction on etl::observer::notification 2024-08-07 15:45:57 +01:00
John Wellbelove
b38194cec4 Removed EmbeddedTemplateLibrary-20.39.0.tar.gz from project. 2024-08-07 12:25:44 +01:00
John Wellbelove
c5a6f9b5b4 #942 Warning on pragma c++20-compat 2024-08-06 19:38:58 +01:00
John Wellbelove
f7c79526f3 Fix for has_duplicates with one template parameter 2024-08-02 10:43:39 +01:00
John Wellbelove
73395fe6f4 Updated C++03 observer class to accept void parameter notification types 2024-08-02 10:36:13 +01:00
John Wellbelove
f219e86806 Added etl::count_of, etl::has_duplicates, etl::has_duplicates_of 2024-08-02 10:35:29 +01:00
John Wellbelove
c61f493a01 Added observer<void> as a specialisation for C++03 code 2024-08-01 13:29:52 +01:00
John Wellbelove
614ed6bf05 Fixed brace syntax 2024-07-31 10:51:41 +01:00
Boris Gromov
f01edbc5c4
Fix histogram indexing when accessed via operator [] (#939) 2024-07-31 09:04:45 +01:00
Drew Rife
211b8c2e90
fix: determine legacy variant after determining compiler version (#938) 2024-07-30 19:36:46 +01:00
John Wellbelove
b3cba2f256 Merge branch 'pull-request/#935-added-20-bit-integral-limits' into development
# Conflicts:
#	support/Release notes.txt
2024-07-30 14:48:44 +01:00
John Wellbelove
75f2e7b392 Added support for 20bit types for integral_limits 2024-07-30 14:46:50 +01:00
ReneCanadian
bf56dcf074
added 20 bit integral limits (#935) 2024-07-30 13:54:40 +01:00
John Wellbelove
7d4e4e93fd Fixed unused parameter warning 2024-07-30 13:35:30 +01:00
John Wellbelove
9b8c7780a4 Fixed legacy variant macro 2024-07-30 13:35:08 +01:00
John Wellbelove
b6801b5c0c Added observer specialisation for void notification parameter type 2024-07-30 13:33:58 +01:00
John Wellbelove
37b46c4f64 Updated release notes and version 2024-07-28 17:57:35 +01:00
John Wellbelove
0b8b057a75 Fixed rebase duplication 2024-07-28 17:04:47 +01:00
John Wellbelove
b85cc276b3 Refactored etl::io_port classes
Added binary operators
Modified the way iterators are handled.
2024-07-28 16:51:02 +01:00
Chiraffollo
083bafa3ce Fix missing partial specialisation equal operators (#927) 2024-07-28 16:49:03 +01:00
John Wellbelove
324f5ebea9 Small format changes 2024-07-28 16:48:45 +01:00
Chiraffollo
83c55ad77e Fix issue #923 equality operator for class expected (#926)
* Add equality operators for class expected

* Add missing unequal operator

---------

Co-authored-by: Oliver Marx <omarx@de.pepperl-fuchs.com>
2024-07-28 16:48:17 +01:00
John Wellbelove
32f5d19792 Added is_active member function to callback_timer classes. 2024-07-28 16:47:13 +01:00
John Wellbelove
3a557c6f1a Removed asserts from etl::unique_ptr 2024-07-28 16:47:13 +01:00
Tigran Khachatryan
c9c01092d6 Add an etl::nullptr_t type to <etl/nullptr.h> (#924)
* Add an etl::nullptr_t type

* etlcpp/etl issue #921 (etl::unique_ptr reset): add etl::unique_ptr(...)::reset(ETL_NULLPTR)

Remove default argument for the normal reset method of etl::unique_ptr (sorry, didn't notice 😬)

Silence the unused argument warning

Fix operator =(nullptr)

Replace the nullptr_t enum with a class which acts more similar to C++11 nullptr

* Add member pointer support and delete the addressof operator

* "Delete" etl::addressof(ETL_NULLPTR)

* Ensure compatibility with C++98

* ACTUALLY ensure compatibility with C++98

I'm stupid :/

* Correct definition according to cppreference
2024-07-28 16:47:13 +01:00
John Wellbelove
d8faf5655c Add missing swap implementations for expected (#928)
* Fix missing partial specialisation equal operators

* Add missing swap implementations for expected
2024-07-28 16:47:12 +01:00
Chiraffollo
64be8a63d7 Add missing swap implementations for expected (#928)
* Fix missing partial specialisation equal operators

* Add missing swap implementations for expected
2024-07-28 16:47:12 +01:00
Chiraffollo
0c87973061 Fix missing partial specialisation equal operators (#927) 2024-07-28 16:47:12 +01:00
John Wellbelove
24824d2095 Added ETL_USING_LEGACY_VARIANT & ETL_NOT_USING_LEGACY_VARIANT
Added some legacy API member functions to new variant type.
2024-07-28 16:47:12 +01:00
John Wellbelove
6a8d183797 Small format changes 2024-07-28 16:47:12 +01:00
Chiraffollo
752617ab4c Fix issue #923 equality operator for class expected (#926)
* Add equality operators for class expected

* Add missing unequal operator

---------

Co-authored-by: Oliver Marx <omarx@de.pepperl-fuchs.com>
2024-07-28 16:47:12 +01:00
Rafael Laya
02981a5cc2
Fixes compiler detection with Wundef (#934)
* Fix doc comment for pool::allocate() (#914)

* Fixes compiler detection with Wunder

---------

Co-authored-by: Michael K <130953568+kmichaelk@users.noreply.github.com>
Co-authored-by: Rafael Laya <rafaellaya@meta.com>
2024-07-28 16:45:08 +01:00
Chiraffollo
5d97f075a5
Fix issue #931 (#932)
* Fix doc comment for pool::allocate() (#914)

* Fix issue #931

Superfluous curly braces removed

---------

Co-authored-by: Michael K <130953568+kmichaelk@users.noreply.github.com>
2024-07-23 15:41:00 +01:00
Michael K
744d54c1fd
Fix doc comment for pool::allocate() (#914) 2024-07-14 18:42:02 +01:00
jaskij
64f620c1a8
fix c++20-compat false positive (#909)
* fix c++20-compat false positive

* move the c++20 compat warning suppression to a separate header

* fix GCC/clang in private/diagnostic_cxx_20_compat_push.h

---------

Co-authored-by: Jan Dorniak <jdorniak@ultima-automatyka.pl>
2024-07-02 09:35:24 +01:00
John Wellbelove
ce24b0cc6e Refactored base64 encoder and decoder 2024-06-26 14:56:00 +01:00
John Wellbelove
dcc3e7d938 Added parameter_type_t 2024-06-24 18:20:34 +01:00
John Wellbelove
1c261bf297 Merge branch 'feature/Base64-codec' into development 2024-06-24 17:46:00 +01:00
John Wellbelove
208d8f9642 Implementation of Base64 encoder and decoder 2024-06-24 17:44:53 +01:00
John Wellbelove
aab8630c1a Refactored base64 encoder and decoder 2024-06-22 12:37:58 +01:00
John Wellbelove
96a1105891 Refactored base64 encoder and decoder 2024-06-19 20:22:57 +01:00
John Wellbelove
f7382f4713 Refactored base64 encoder and decoder 2024-06-17 14:23:42 +01:00
John Wellbelove
ab1ea83f77 Refactored base64 encoder and decoder 2024-06-16 13:53:05 +01:00
John Wellbelove
211f872318 Refactored base64 encoder 2024-06-14 20:00:28 +01:00
John Wellbelove
5c2615ac30 Partial refactor into separate encode and decoder headers
Changed to delegate callback based operation
2024-06-14 11:54:23 +01:00
John Wellbelove
e159a6b7ff Merge branch 'pull-request/#905-Add-support-for-type_identity' into development 2024-06-11 13:51:59 +01:00
Tigran Khachatryan
6ced0630a9
etl/type_traits.h: Add support for type_identity (#905)
* etl/type_traits.h: Add support for type_identity

* test/test_type_traits.cpp: Add a test for etl::type_identity (type_identity_test_add(1.5f, 2) == 3.5f)

* Update test_type_traits.cpp

Use CHECK_CLOSE instead of CHECK for equality
2024-06-11 13:43:59 +01:00
John Wellbelove
bb71b60496 Updated version and release 2024-06-05 17:33:16 +01:00
John Wellbelove
9247c14e82 Changed std algorithms to etl 2024-06-05 17:31:01 +01:00
John Wellbelove
a8f59355fe Changed std algorithms to etl 2024-06-05 14:03:37 +01:00
Saku Glumoff
496c8a2e7c
Fix doc comment for exception::line_number() (#901)
The documentation comment for `exception::line_number()` in
`include/etl/exception.h` states falsely that the return type for
the function is a `const char*`.

It should state that the return type is `numeric_type`,
which is an `int`.

So change the documentation comment to reflect that the return type is
an `int`.
2024-06-04 18:17:41 +01:00
John Wellbelove
45333cae91 Merge branch 'development' into feature/Base64-codec
# Conflicts:
#	arduino/library-arduino.json
#	arduino/library-arduino.properties
#	include/etl/iterator.h
#	include/etl/version.h
#	library.json
#	library.properties
#	test/CMakeLists.txt
#	test/vs2022/etl.vcxproj.filters
#	version.txt
2024-06-02 10:19:09 +01:00
John Wellbelove
8bf527e087 Updated version and release 2024-05-31 17:16:12 +01:00
John Wellbelove
0d1db08c4a Make conversion operator public 2024-05-31 17:06:48 +01:00
John Wellbelove
bbfce66abc Added template parameter clamp functions 2024-05-28 11:58:07 +01:00
John Wellbelove
e2333886a5 Fixed static & constexpr order 2024-05-25 12:02:20 +01:00
John Wellbelove
e11548fc57 Updated version and release notes 2024-05-15 20:47:11 +01:00
John Wellbelove
1a09998752 Removed ETL_CONSTEXPR from size() 2024-05-15 20:46:49 +01:00
John Wellbelove
cdd3bae357 Updated version and release notes 2024-05-13 13:45:28 +01:00
John Wellbelove
d69779a8cf Added GCD and LCM algorithms 2024-05-13 13:45:27 +01:00
John Wellbelove
390afc4d9d Added specialisations of etl::rotate for different iterator types 2024-05-13 13:45:27 +01:00
John Wellbelove
b42af2a829 Added GCD and LCM algorithms 2024-05-13 13:45:27 +01:00
John Wellbelove
f9867c2281 Added specialisations of etl::rotate for different iterator types 2024-05-13 13:45:27 +01:00
John Wellbelove
959b83ec22 Added ETL_NODISCARD, ETL_CONSTEXPR14 and ETL_NOEXCEPT 2024-05-13 13:45:27 +01:00
John Wellbelove
19a7518c2b Full constexpr for etl::array 2024-05-13 13:45:27 +01:00
John Wellbelove
76699fb27c Revert change #804 to restore value initialisation of type0 for default constructor 2024-04-26 17:48:22 +01:00
John Wellbelove
5ab69e3e97 Updated version and release notes 2024-04-24 13:11:33 +01:00
John Wellbelove
824c173414 Minor code format change 2024-04-24 13:10:26 +01:00
John Wellbelove
4ce524e43c #885 Bug: queue move-assignment is not compiling 2024-04-23 09:55:52 +01:00
John Wellbelove
3f9b990a72 #815 etl::remove_if calls predicate twice for first iterator, where predicate returns true. 2024-04-23 09:54:53 +01:00
John Wellbelove
7932403aba Added C++03 variant of nth_element 2024-04-18 10:57:59 +01:00
John Wellbelove
a2bd57c89f #806 etl::variant_pool should support C++17 variadic parameters
Added variadic version that supports >=C++11
2024-04-17 16:47:02 +01:00
John Wellbelove
754eba9aaf Updated generator headers 2024-04-16 09:41:44 +01:00
John Wellbelove
ea9d5b0962 Changes for OSX + C++20 + STL compatibility 2024-04-16 09:02:59 +01:00
John Wellbelove
f12629b9d9 Small format change 2024-04-16 08:08:57 +01:00
John Wellbelove
ae372afe85 Added conditional compilation for C++03 for etl::three_way_compare() 2024-04-16 08:08:35 +01:00
John Wellbelove
55f508b315 Added etl::partition and etl::nth_element 2024-04-16 08:07:33 +01:00
John Wellbelove
937ec7189a Make first() and last() static for template based limits specialisation 2024-04-16 08:04:49 +01:00
John Wellbelove
a2f40effa4 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2024-04-11 11:38:58 +01:00
David Hebbeker
749d4a3a03
Render include paths relative. (#879)
By removing `etl/` from include paths (in `#include` statements), the path to the directory `include/` doesn't need to be provided to the preprocessor as an include path if the files in `include/etl/` are included by other means.
This has no disadvantages.
Actually the form `#include "..."` is intended to be used for relative paths in the first place.

This is relevant if one wants to include the source files from `include/etl` only indirectly.

For example we use special generated header files which wrap the include statement of the vanilla header files with diagnostic commands.
Those commands allow to disable diagnostic for ETL's files and re-enable them after the file inclusion.
Wrapper files are generated for every non-private header file.
We provide the directory with the wrapper files as include path to the preprocessor instead of the normal `include/` directory.
Thus include statements like `#include "etl/private/..."` are invalid in that case.
2024-04-11 10:38:16 +01:00
John Wellbelove
ddcabd6514 Disable <=> compare code when not C++20 2024-04-09 14:46:51 +01:00
John Wellbelove
4f440a429e Optimised string_view::find_first_not_of & string_view::find_last_not_of 2024-04-09 14:45:35 +01:00
John Wellbelove
a5560b2ce1 Added etl::partition 2024-04-09 13:46:33 +01:00
John Wellbelove
52083acff3 Added node erase member functions 2024-04-02 17:12:51 +01:00
John Wellbelove
106c4fd540 Added erase(node_type&) member function.
Added node_type typedef to intrusive lists
2024-04-02 11:41:01 +01:00
John Wellbelove
4493c89060 Merge branch 'hotfix/#868-etl-variant-is-missing-comparison-operators' into development 2024-04-01 17:14:03 +01:00
John Wellbelove
96846f9b57 Removed 'possible nullptr' warning. 2024-04-01 16:57:46 +01:00
John Wellbelove
309154d0ce Added diagnostic_null_dereference_push.h 2024-03-30 08:47:54 +00:00
John Wellbelove
39205e719d Added comparison operators 2024-03-29 16:35:45 +00:00
John Wellbelove
4bc8d00737 Modified return types 2024-03-27 21:01:05 +00:00
John Wellbelove
f1d80ba577 Work in progree 2024-03-23 20:32:26 +00:00
John Wellbelove
41a680436c Added etl::mem_fn 2024-03-23 15:08:01 +00:00
John Wellbelove
ac93dc730d Added etl::mem_fn 2024-03-21 14:28:09 +00:00
John Wellbelove
353419f284 Updated with UnitTest++ macros 2024-03-21 10:26:58 +00:00
John Wellbelove
1474d4add8 Added etl::mem_fn 2024-03-21 10:07:31 +00:00
John Wellbelove
e64b489d5e Fixed dereference of state pointer when null. 2024-03-20 23:33:18 +00:00
John Wellbelove
8710dfc4ff Fixed dereference of state pointer when null. 2024-03-20 23:27:18 +00:00
John Wellbelove
84dd8ceca3 Merge branch 'pull-request/#861-Implement-Constexpr-Strong-Typedef' into development 2024-03-17 13:57:17 +00:00
John Wellbelove
15675f29a6 Updates to constexpr operators 2024-03-17 13:56:56 +00:00
Drew Rife
a8ca216f4e
Update ETL_CONSTEXPR and C++14 desgination from type_def (#862)
* feat: make type_def constexpr

* test: macro constexpr

* test: implicit constexpr

* test: get constexpr

* refactor: remove constexpr from assignment

* test: comparisons constexpr

* fix: cpp11 support for constexpr get method

* fix: c++11 issue with constexpr get reference

* refactor: remove constexpr from the get methods

* refactor: make assignment operators non-constexpr

* refactor: remove constexpr from assignment and get

* refactor: make other methods ETL_CONSTEXPR14

* test: operator preincrement

* test: postincrement

* test: predecrement constexpr

* test: post decrement constexpr

* fix: post decrement test

* test: addition assignment constexpr

* test: subtraction assignment constexpr

* test: multiplication assignment operator

* test: and assignment constexpr

* test: or assignment constexpr

* test: xor assignment constexpr

* tet: left shift assignment constexpr

* test: right shift assignment constexpr

* test: operator modules assignment

* style: revert personal clang-format changes

* refactor: use free functions to test

* refactor: remove constexpr non-constexpr test functions

* style: remove erroneous tab
2024-03-16 12:07:00 +00:00
John Wellbelove
7b358dd35a Added constexpr to compare functions 2024-03-16 11:26:15 +00:00
Benzinnos
80af5a4891
Add eq and ne operators for compare utility. (#863)
* Add eq and ne operators

* Add three-way comparison to compare utils.

* Three-way comparison test now using own test data.

* Rename test struct for three-way comparison test.

---------

Co-authored-by: grigorev <grigorev@protei.ru>
2024-03-15 18:15:07 +00:00
John Wellbelove
cb2700e75d Modified accepts() message router functions to interrogate subscribed and successor routers to achieve consistency. 2024-03-15 13:01:59 +00:00
John Wellbelove
80613827c9 Turned etl::send_message into templates so that direct calls to concrete routers are possible 2024-03-15 10:58:11 +00:00
Drew Rife
48c496cd44
Implement Constexpr Strong Typedef (#861)
* feat: make type_def constexpr

* test: macro constexpr

* test: implicit constexpr

* test: get constexpr

* refactor: remove constexpr from assignment

* test: comparisons constexpr

* fix: cpp11 support for constexpr get method
2024-03-13 09:56:47 +00:00
John Wellbelove
b807bad3e3 #847-Add-has_active_timer-to-callback_timer 2024-03-13 09:54:29 +00:00
John Wellbelove
2a5565791c Deleted etl::span fixed extent default constructor 2024-03-11 18:34:51 +00:00
John Wellbelove
e5523d2d0b Added C++11 conditional compilation around rvalue reference functions 2024-03-11 18:11:44 +00:00
John Wellbelove
881f3d8e62 #841 Change push to push_back on containers, so they can be used with std::back_inserter 2024-03-11 18:10:46 +00:00
John Wellbelove
1cc94b6418 #827 Declaration order for etl::first_set_bit_position in binary.h 2024-03-11 18:09:50 +00:00
John Wellbelove
ce79721a4d #855 Strange expression in volatile atomic operator-- 2024-03-11 18:09:19 +00:00
John Wellbelove
199bb131df Minor fixes 2024-03-11 08:37:13 +00:00
John Wellbelove
4737fd0f03 Removed etl::type_tag and replaced its use with etl::in_place_type_t 2024-03-10 20:23:30 +00:00
John Wellbelove
8826b56493 Fixed existing initializer_list member functions
Added additional initializer_list member functions
2024-03-10 20:22:08 +00:00
John Wellbelove
46b636694d Fixed existing initializer_list member functions
Added additional initializer_list member functions
2024-03-10 20:21:30 +00:00
John Wellbelove
a77e435924 Fixed unsynched generators 2024-03-10 09:33:05 +00:00
John Wellbelove
8593f95208 Merge branch 'pull-request/#858-fix-unique_ptr-assigning-nullptr-to-a-null-unique_ptr-causes-an-assert' into development 2024-03-09 15:25:04 +00:00
John Wellbelove
9a520a37aa Merge branch 'pull-request/#849-fix-string_stream-add-missing-initializations-of-const-format-specifiers' into development
# Conflicts:
#	support/Release notes.txt
2024-03-09 15:23:47 +00:00
Derek Ludwig
abb0494e71
fix(unique_ptr): assigning nullptr to a null unique_ptr causes an assert (#858) 2024-03-09 14:57:15 +00:00
Manuel Knörle
7c24f66ecc
fix(string_stream): add missing initializations of const format specifiers (#849)
The const variables "left" and "right" are const default initialized.
The C++ standard states the following:
"A class type T is const-default-constructible if default-initialization
of T would invoke a user-provided constructor of T."
Since the "left_soec" and "right_spec" structs are PODs they are not
initialized per default. Due to the "constness" the variable can not be
modified later one, therefore the POD is in a state in which it is not
useful at all.
Since the mentioned structs are empty there would be no problem
in this case. This is an issue in the C++ standard (CWG Issue 253).
Some compilers already handle this issue with their own solution
despite the fact, that the standard did not provide a solution yet.
For some exotic compilers  (e.g. Tasking for TriCore) the include of
the "string_stream" header caused compilation errors:
"const variable "etl::left" requires an initializer -- class "etl::private_basic_format_spec::left_spec" has no user-provided default constructor"

References:
https://en.cppreference.com/w/cpp/language/default_initialization
https://cplusplus.github.io/CWG/issues/253.html
https://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a
https://stackoverflow.com/questions/24943665/why-is-a-constructor-necessary-in-a-const-member-struct
2024-03-09 14:56:06 +00:00
John Wellbelove
b6db4195a3 Refactored etl::is_default_constructible definition 2024-03-09 12:03:52 +00:00
John Wellbelove
40326db14c Added etl::is_default_constructible_v 2024-03-09 10:31:20 +00:00
John Wellbelove
0cf4396fcb #854 in-place construction of shared message 2024-03-09 10:11:00 +00:00
John Wellbelove
59178e495a Added etl::type_tag<T> 2024-03-09 10:03:26 +00:00
John Wellbelove
cbf08d1efa Refactored message_packet constructors 2024-03-09 10:03:01 +00:00
John Wellbelove
82b05faa59 Merge branch 'pull-request/#854-in-place-construction-of-shared-message' of https://github.com/ETLCPP/etl into pull-request/#854-in-place-construction-of-shared-message 2024-03-08 12:04:40 +00:00
John Wellbelove
3ca09462a8 Fixed implicitly disabled copy constructor 2024-03-08 12:02:41 +00:00