2123 Commits

Author SHA1 Message Date
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
SanderSmeenkInspiro
268ca4e04b
Add support for in-place instantiation of a shared message in the message pool (#854)
* #850 Fixed names according to Arduino's guidelines

* #850 Fixed names according to Arduino's guidelines

* Add support for in-place instantiation of a shared message in the message pool

---------

Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2024-03-08 10:02:47 +00:00
John Wellbelove
1e1ce38113 #850 Fixed names according to Arduino's guidelines 2024-03-08 09:31:27 +00:00
John Wellbelove
e1d563a32f Added etl::is_default_constructible 2024-03-06 19:02:45 +00:00
John Wellbelove
95af36acd3 Refactored message_packet constructors 2024-03-06 19:02:00 +00:00
John Wellbelove
b89f62a789 Changed optional 'simple' types implementation for C++14 constexpr compatibility 2024-03-06 19:00:51 +00:00
John Wellbelove
131ed46598 Changed shadowed variables 2024-03-05 12:17:09 +00:00
John Wellbelove
de6e6ab13c Added tests for message base_type 2024-03-05 09:55:08 +00:00
John Wellbelove
c6dc700cf3 Added message type traits 2024-03-05 09:55:08 +00:00
John Wellbelove
4245e23bee Merge branch 'pull-request/#804-variant-varadic-default-constructed-state' into development 2024-03-04 20:08:24 +00:00
John Wellbelove
7f13eeb06c Added fixes for deque operator-(). Removed redundant operator that was causing compile errors for C++20
# Conflicts:
#	test/test_deque.cpp
2024-03-04 13:10:17 +00:00
John Wellbelove
9a25ccbbae Removed duplicated include 2024-03-04 12:55:22 +00:00
John Wellbelove
573333586f Comment spelling fix 2024-03-04 12:55:03 +00:00
John Wellbelove
26e346e11e Added fixes for deque operator-(). Removed redundant operator that was causing compile errors for C++20 2024-03-04 12:54:38 +00:00
John Wellbelove
a98d387a11 #850 Fixed names according to Arduino's guidelines 2024-02-24 11:49:54 +00:00
Manuel Seeböck
134f8e4209
variant varadic default constructed state (#804)
* fixed variant varadic default constructed state

* updated testcases to account for default contructor changes
2024-02-22 19:14:37 +00:00
John Wellbelove
f04fe0f383 Merge branch 'hotfix/#818-etl-apply-code-spell-check-across-entire-code-base' into development 2024-02-22 19:07:12 +00:00
Pisit Sawangvonganan
c92d970d09
etl: apply code spell check across entire code base (#818)
Utilized a spell checking tool to identify and correct spelling
throughout all files in the code base.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2024-02-22 19:06:23 +00:00
John Wellbelove
de3091a6bc Merge branch 'hotfix/#845-message_packet-missing-a-copy-constructor' into development 2024-02-18 12:08:26 +00:00
John Wellbelove
a2b7eb5d5a Added specific copy and move constructors for C++17 and above. 2024-02-18 12:08:11 +00:00
John Wellbelove
0791d39444 Merge branch 'pull-request/#843-In-subspan-function,-add-static-checks-on-extents' into development 2024-02-18 10:48:17 +00:00
John Wellbelove
aad8024ef1 Edited comments 2024-02-18 10:48:01 +00:00
mike919192
4b12e982e6
In subspan function, add static checks on extents (#843)
* In subspan function, add static checks on extents

* Change to ETL_STATIC_ASSERT.  Add static assert for first and last functions

* Add static assert to pre c++11 subspan

* Change extent to Extent to better match existing code
2024-02-16 09:21:25 +00:00
John Wellbelove
89eedd4563 Merge branch 'hotfix/#819-etl-optional-cannot-return-an-optional-object-of-self-from-member-function' into development
# Conflicts:
#	include/etl/optional.h
2024-02-15 11:10:31 +00:00
John Wellbelove
ea74d2f02f etl::optional C++ compatibility updates 2024-02-15 10:50:45 +00:00
John Wellbelove
3cbc73e0c9 Updated unit tests for constexpr optional 2024-02-09 11:04:39 +00:00
John Wellbelove
2619b9e307 Refactored etl::optional implementation 2024-02-02 12:42:07 +00:00
John Wellbelove
c92771088c #834 char_traits.h throws warning for GHS compiler 2024-01-31 09:50:11 +00:00
John Wellbelove
19eff9d69e Merge branch 'master' into development
# Conflicts:
#	include/etl/optional.h
2024-01-28 20:39:28 +00:00
John Wellbelove
3caffa148f Merge branch 'hotfix/#829-Possible-bug-on-assign-of-etl-array' into development 2024-01-28 20:35:22 +00:00
John Wellbelove
ad33083543 Added safe copy to etl::array::assign
etl::array::assign now returns an iterator
2024-01-28 20:35:07 +00:00
John Wellbelove
9ed453e7ef Merge branch 'hotfix/#827-Declaration-order-for-etl--first_set_bit_position-in-binary_h' into development 2024-01-28 09:20:49 +00:00
John Wellbelove
c0f2bec6ae Comment fix 2024-01-28 09:20:15 +00:00
Chiraffollo
84031659fa
Fix #832: Only copy/move storage value when optional is valid (#833) 2024-01-27 00:55:51 +00:00
John Wellbelove
1d6a068e0a Merge branch 'hotfix/#803-etl-unordered_map-buffer-overflow' into development 2024-01-25 16:35:56 +00:00
John Wellbelove
77513730e0 Fixed shadow warnings in all files
#823 Multiple variable shadowing warnings in private/bitset_new.h
2024-01-25 14:22:26 +00:00
John Wellbelove
664bdac4bd Initial refactor 2024-01-21 15:02:01 +00:00
John Wellbelove
51b10c498c Added to_ulong() and to_ullong() 2024-01-20 21:03:17 +00:00
John Wellbelove
5e78b48b6c #815 etl::remove_if calls predicate twice for first iterator, where predicate returns true. 2024-01-20 18:35:20 +00:00
John Wellbelove
816e87ae00 Merge branch 'feature/#774-Truncating-access-for-etl-bitset' into development
# Conflicts:
#	test/vs2022/etl.vcxproj.filters
2024-01-20 18:32:59 +00:00
John Wellbelove
94ee20e2fd Fix C++ standard syntax compatibility for repair() 2024-01-20 18:10:34 +00:00
John Wellbelove
83e23b9adf Fix C++ standard syntax compatibility for repair() 2024-01-20 10:08:15 +00:00
John Wellbelove
1825c54570 Minor C++ standards compatibility tweaks 2024-01-20 09:44:51 +00:00
John Wellbelove
47d3d67a14 Modified definition of bitset::Storage_Type for compatibility with C++03 2024-01-18 09:54:07 +00:00
John Wellbelove
0770e76d42 Merge branch 'pull-request/#812-Implement-SAE-J1850-CRC8' into development 2024-01-18 09:30:11 +00:00
Drew Rife
ac4c3e67e6
Implement SAE J1850 CRC8 and "Zero" version (#812)
* feat: added 8bit j1850 crc parameters

* feat: add crc8 j1850 header

* feat: add crc j1850 zero header

* feat: add the crc j1850 headers to crc.h

* test: j1850 4 constructor

* build: crc8 j1850 tests

* test: crc8 j1850 4 add values

* test: crc8 j1850 4 add range

* test: crc8 j1850 4 add range via iterator

* test: crc8 j1850 4 add range endian

* test: crc8 j1850 16 constructor

* test: crc8 j1850 16 add values

* test: crc8 j1850 16 add range

* test: crc8 j1850 16 add range via iterator

* test: crc8 j1850 16 add range endian

* test: crc8 j1850 156 constructor

* test: crc8 j1850 256 add values

* test: crc8 j1850 256 add range

* test: crc8 j1850 add range via iterator

* test: crc8 j1850 256 add range endian

* test: initial commit of crc j1850 zero tests

* build: crc8 j1850 zero tests

* test: crc8 j1850 zero 4 add values

* test: crc8 j1850 zero 4 add range

* test: crc8 j1850 zero 4 add range via iterator

* test: crc8 j1850 zero 4 add range endian

* test: crc8 j1850 zero 16 constructor

* test: crc8 j1850 zero 16 add values

* test: crc8 j1850 zero 16 add range

* test: crc8 j1850 zero 16 add range via iterator

* test: crc8 j1850 zero 16 add range endian

* test: crc8 j1850 zero 256 constructor

* test: crc8 j1850 zero 256 add values

* test: crc8 j1850 zero 256 add range

* test: crc8 j1850 zero 256 add range via iterator

* test: crc8 j1850 zero 256 add range endian

* fix: header include guards
2024-01-13 11:48:55 +00:00
John Wellbelove
3d3dad8499 Work in progress 2024-01-13 11:45:57 +00:00
John Wellbelove
3ca624efb0 Changed case of template constants 2024-01-13 11:45:38 +00:00
John Wellbelove
8f6055e99b Removed ETL_STATIC_CONSTANT 2024-01-13 11:44:59 +00:00
John Wellbelove
ce7ce3bb72 Make binary functor operator() const 2024-01-13 11:44:40 +00:00
John Wellbelove
a7271e470a Work in progress
Comprehensive bitset type comparisons
2024-01-04 00:11:54 +00:00
John Wellbelove
78d2ccf55e Work in progress
Finished updating explicit single element tests for bitset_ext
2023-12-29 16:00:10 +00:00
John Wellbelove
58f469ebd4 Work in progress
Finished updating explicit single element tests
2023-12-29 09:33:20 +00:00
John Wellbelove
c5c88ae010 Work in progress 2023-12-18 15:28:32 +00:00
John Wellbelove
aa4b27b6e6 Work in progress for etl::bitset::extract 2023-12-18 15:21:05 +00:00
John Wellbelove
236af6190a Work in progress for etl::bitset::extract 2023-12-18 15:21:05 +00:00
John Wellbelove
2c8aafedcd Work in progress for etl::bitset::extract 2023-12-18 15:21:05 +00:00
John Wellbelove
a5b425f03e Work in progress for etl::bitset::extract 2023-12-18 15:21:04 +00:00
John Wellbelove
d3b3fdbd40 Fixed 'nodiscard' keyword errors 2023-12-18 11:28:12 +00:00
John Wellbelove
c75617c2b6 #805 legacy etl::bitset set/reset does not work if the element type is greater than 8 bit 2023-12-18 11:07:42 +00:00
John Wellbelove
d17f422dac Added binary functors for ~ & | ^ 2023-12-18 11:02:54 +00:00
John Wellbelove
7bb125a360 Added etl::generate algorithm 2023-12-17 12:54:01 +00:00
John Wellbelove
59cd9e66d7 #807 Change in legacy etl::bitset with nullptr construction + error handling
Harmonised operation of legacy and new etl::bitset
Added ETL_ASSERT checks for nullptr buffer pointers for etl::bitset_ext
2023-12-16 12:57:36 +00:00
John Wellbelove
8f88aa0141 Fixed etl::optional operator =() for invalid values with non-pod types 2023-12-15 10:06:21 +00:00
John Wellbelove
489429bd7c Fixed operator == implementations 2023-12-13 09:58:44 +00:00
John Wellbelove
dd060d5013 Updated version and release 2023-12-10 16:25:45 +00:00
John Wellbelove
f500cd29a8 Prioritize ETL_TARGET_OS_* for mutex selection 2023-12-10 12:57:39 +00:00
John Wellbelove
783be74dd3 Updated version and release notes 2023-12-08 09:26:23 +00:00
John Wellbelove
eba9c5797d Added CRC1 (AKA Parity)
Modified test suit names
2023-12-08 09:03:17 +00:00
John Wellbelove
9161413337 Merge branch 'hotfix/#799-Iterator-returned-by-crc.input()-does-not-satisfy-std--output_iterator' into development 2023-12-08 08:46:34 +00:00
John Wellbelove
6775dba40d Fixed output iterator for frame_check_sequence and pseudo_moving_average 2023-12-08 08:46:16 +00:00
John Wellbelove
4b97e82876 Added CRC1 (AKA Parity)
Modified test suit names
2023-12-07 16:19:46 +00:00
John Wellbelove
1027e66279 #795 etl::private_variant doesn't fully respect the chosen error reporting. 2023-12-05 14:24:32 +00:00
John Wellbelove
bdba48016b typo 2023-12-05 09:59:44 +00:00
John Wellbelove
8aa799a3cb Added check for NAN definitions for C++11 FP functions 2023-12-05 09:53:47 +00:00
John Wellbelove
cbbd1d840a Added additional etl::make_lsb_mask and etl::make_msb_mask binary functions 2023-12-04 08:38:42 +00:00
John Wellbelove
4606e33a6d Merge branch 'pull-request/#782-Set-is-full-error-when-adding-existing-item' into development 2023-11-24 11:26:55 +00:00
İsmail Tüzün
c6fecd9d7c
Set is full error when adding existing item (#782)
* Fixed set_full error when inserting existing item.

* Added test inserting existing value to full set

* Added test inserting existing value to full flat_set and reference_flat_set

* Fixed unordered_set_full error when inserting existing item.
2023-11-24 11:24:52 +00:00
John Wellbelove
b732b14c53 Update version and release notes 2023-11-24 11:22:50 +00:00
John Wellbelove
04211563f5 Fix useless cast 2023-11-24 10:23:12 +00:00
John Wellbelove
63d1a64e6c #787 etl::expected doesn't compile with ETL_LOG_ERRORS
Updated CI scripts
#786 u8string
#783 Cannot insert existing value to full set
#781 etl::multi_span::iterator::operator *() fails if first span is empty
#780 endian enum_type produces useless-cast warnings
#779 hash.h: warnings produced with -Wfloat-equal
2023-11-24 09:59:35 +00:00
John Wellbelove
f5879a757a Merge branch 'hotfix/#779-hash-h-warnings-produced-with-Wfloat-equal' into development
# Conflicts:
#	test/run-tests.sh
#	test/vs2022/etl.vcxproj.filters
2023-11-21 17:55:57 +00:00
John Wellbelove
61da85fa77 Removed float-equal warnings
Added functions is_nan, is_infinity, is_zero & is_exactly_equal
Fixed array-bounds warnings for GCC and -O2 optimisation
2023-11-21 15:13:24 +00:00
John Wellbelove
03cbf64c42 Merge branch 'hotfix/#787-etl-expected-doesn't-compile-with-ETL_LOG_ERRORS' into development 2023-11-14 10:35:32 +00:00
John Wellbelove
6c3eddaf76 Changed etl::expected_invalid to non-template type
Added tests for rereference operators
2023-11-14 10:35:04 +00:00
John Wellbelove
521bae91eb Merge branch 'hotfix/#781-etl-multi_span-iterator-function-operator-fails-if-first-span-is-empty' into development 2023-11-14 00:08:57 +00:00
John Wellbelove
b6650120f8 Added u8string + utilities
Changed char types to unsigned 'least' types
2023-11-14 00:06:57 +00:00
John Wellbelove
c400779905 #781 etl::multi_span::iterator::operator *() fails if first span is empty 2023-11-03 18:37:25 +01:00
John Wellbelove
5622a98571 Refactoring 2023-10-31 11:12:07 +01:00
John Wellbelove
23a76d2371 Refactored back_inserter support 2023-10-29 09:01:08 +01:00
John Wellbelove
9a5ed96f8e Renamed test file 2023-10-29 09:00:49 +01:00
John Wellbelove
02e69f5757 Added padding flag 2023-10-29 09:00:49 +01:00
John Wellbelove
b1a042385f Removed static from encode and decode functions 2023-10-29 09:00:49 +01:00
John Wellbelove
0523fc869a Static version of Base64 - RFC-6848 - No optional padding 2023-10-29 09:00:49 +01:00
John Wellbelove
58c55a8bb6 Updates 2023-10-29 08:59:11 +01:00
John Wellbelove
f9233f99ab Refactor to support multiple RFCs 2023-10-29 08:58:11 +01:00
John Wellbelove
8db9613320 Renamed test file 2023-10-29 08:58:11 +01:00
John Wellbelove
5016d4033f Added padding flag 2023-10-29 08:58:10 +01:00
John Wellbelove
456a56e7aa Removed static from encode and decode functions 2023-10-29 08:58:10 +01:00
John Wellbelove
25338fb0d1 Static version of Base64 - RFC-6848 - No optional padding 2023-10-29 08:58:10 +01:00
John Wellbelove
91a150e37b Updates 2023-10-29 08:58:10 +01:00
John Wellbelove
47e16bd010 Updated version and release notes 2023-10-28 22:52:41 +02:00
John Wellbelove
09c3b30f83 Revert "Added add_lvalue_reference for rvalue reference"
This reverts commit a09efffb8fadb0c25923fe5435b7b1f9bdd673f1.
2023-10-28 11:38:54 +02:00
John Wellbelove
a09efffb8f Added add_lvalue_reference for rvalue reference 2023-10-28 11:35:38 +02:00
John Wellbelove
f8d5c31f66 Refactored swap 2023-10-28 11:33:25 +02:00
John Wellbelove
39c3ca8dea Merge remote-tracking branch 'origin/pull-request/#777-Allow-Building-Tests-as-Submodule-and-GCC-less-than-11' into development 2023-10-27 10:20:58 +02:00
jmartens-42
13759c1cbb
moved BUILD_TESTS check outside of root cmake check to allow building tests in submodules (#777)
added check for GNUC >= 11 for -Wstringop-overread ignore pragma since it isn't introduced until gcc/g++-11

Co-authored-by: Josh <joshua.martens@magna.com>
2023-10-26 20:07:23 +02:00
John Wellbelove
e8eeeba875 Merge branch 'master' into development 2023-10-23 09:59:41 +01:00
John Wellbelove
85f2e09ef7 #776 Add missing semicolons 2023-10-23 09:35:01 +01:00
H1MSK
837a5156b4
Add missing semicolons (#776) 2023-10-22 16:16:04 +01:00
John Wellbelove
5ca6e05eb8 Added etl::string interface to etl::base64 2023-10-15 11:44:23 +01:00
John Wellbelove
21a9b884bc Added etl::string::fill() 2023-10-15 11:44:23 +01:00
John Wellbelove
6bc244cf8e Final changes 2023-10-15 11:44:22 +01:00
John Wellbelove
f7281dc680 Initial code 2023-10-15 11:44:22 +01:00
John Wellbelove
91a357d18d static_cast for string_view & array_view size() member functions 2023-10-15 11:44:22 +01:00
John Wellbelove
92e880f3b1 #773 Return raw pointer for etl::multi_span::operator->() 2023-10-14 21:34:39 +01:00
David Hebbeker
e631a0fd9b
Return raw pointer for etl::multi_span::operator->(). (#773)
- using `operator*()` in case getting the current element is changed one day
- using `&` to get the address

Simply returning `p_value` may break in case the internal type of `p_value` would change. This way it is more robust to changes.
2023-10-13 20:48:46 +01:00
John Wellbelove
24b145896d Updated versions 2023-09-27 17:56:10 +01:00
John Wellbelove
11155eb9f1 Fixed alignment functionality 2023-09-27 13:48:53 +01:00
John Wellbelove
d507106764 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2023-09-24 19:56:38 +01:00
John Wellbelove
754ac74d5a Updated release notes 2023-09-24 19:48:15 +01:00
John Wellbelove
61713b6ce4 Refactored storage for etl::optional 2023-09-24 18:54:24 +01:00
John Wellbelove
1f368ead6c #766 etl::unique_ptr::reset() can call deleter with nullptr argument 2023-09-23 11:29:14 +01:00
John Wellbelove
40df32148e Merge branch 'hotfix/#749-Code-change-causes-warning-with-armcc-compiler' into development 2023-09-21 18:25:01 +01:00
John Wellbelove
2b6f6de846 Commets added 2023-09-21 18:22:48 +01:00
John Wellbelove
9a73f5e3a5 Enabled etl::overload for C++11 & C++14 2023-09-20 23:06:45 +01:00
Andreas
ee8be059e8 Remove BOM from random.h (#762)
random.h is the only file with UTF8-BOM and IAR can not handle it.
For compatibility reasons it should be removed.

Co-authored-by: Andreas Pelczer <pelczer@stoerk-tronic.com>
2023-09-20 23:06:45 +01:00
Andreas
b2adb0de9f Make "private" includes relativ (#761)
Avoid "include not found" when indirectly including etl-header

Co-authored-by: Andreas Pelczer <pelczer@stoerk-tronic.com>
2023-09-20 23:06:33 +01:00
Soma Veszelovszki
93091cff0f Fixed: move assignment not working for non-empty containers (#759) 2023-09-20 23:06:32 +01:00
John Wellbelove
9311256931 Possible fix for #756 2023-09-20 23:06:32 +01:00
John Wellbelove
0216ecf020 Updated version and release notes 2023-09-20 23:06:32 +01:00
John Wellbelove
4469aeb63c Added conversion operators to std::span
MacOS clang span issue

MacOS clang span issue

MacOS clang span issue

MacOS clang span issue

MacOS clang span issue
2023-09-20 23:06:32 +01:00
John Wellbelove
d51784765f const_reference at(size_t i) const is only constexpr from C++14 2023-09-04 08:08:34 +01:00
John Wellbelove
a4879c8908 #755 warning about constexpr in array.h 2023-09-03 23:50:03 +01:00
John Wellbelove
01d96609cf #753 [porting] IAR's overload resolution struggles with etl::span::span(etl::array&)
#754 ambiguous etl::bit_stream_reader::bit_stream_reader() for some etl::span
2023-09-02 14:50:24 +01:00
John Wellbelove
7fdaa7c9a4 Updated vesrion and release notes 2023-08-29 13:48:24 +01:00
John Wellbelove
94654689e8 Removed semicolon warnings 2023-08-29 09:25:58 +01:00
John Wellbelove
b38afd7fc9 Updated version and release notes 2023-08-26 11:49:17 +01:00
John Wellbelove
5402a3ed14 Added destructor to CMSIS_RTOS2 mutex 2023-08-26 10:46:05 +01:00
John Wellbelove
c92ab94220 Change to require semicolons after debug count macros.
Added error assert for vector reserve greater than capacity.
2023-08-25 21:08:01 +01:00
John Wellbelove
ee7fc16192 Merge branch 'feature/#744-get-time-when-next-timer-will-expire-etl--callback_timer' into development
# Conflicts:
#	.gitignore
#	include/etl/intrusive_forward_list.h
2023-08-25 15:38:13 +01:00
John Wellbelove
a65725a283 Merge branch 'hotfix/#746-Missing-etl--legacy--variant-overload-of-emplace-with-0-Arguments' into development 2023-08-25 15:36:05 +01:00
John Wellbelove
076896e329 Remove used variable 2023-08-25 15:14:26 +01:00
John Wellbelove
f5f0ef35f5 Remove used variable 2023-08-25 12:25:38 +01:00
John Wellbelove
7e31561363 Fix issue of release of an object on empty an pool 2023-08-25 10:32:25 +01:00
John Wellbelove
53084ae932 Added c++03 zero parameter emplace member functions 2023-08-25 02:05:46 +01:00
John Wellbelove
7e266687a2 Added C++03 compatible etl::move or etl::move_backward 2023-08-23 19:54:28 +01:00
John Wellbelove
f4ca3cefe1 Added 'sentence case' versions of constants 2023-08-21 21:33:44 +01:00
John Wellbelove
11daaa398b Added time_to_next() status function 2023-08-21 20:58:44 +01:00
John Wellbelove
870759fcab Removed unused variable
Minor format edit
2023-08-21 20:57:33 +01:00
John Wellbelove
77fb39c9d2 Removed redundant #includes 2023-08-20 20:16:27 +01:00
John Wellbelove
06761ca562 #745 Assertion triggered in hash.h when compiling for MSP430 2023-08-19 12:27:57 +01:00
John Wellbelove
faed17ab99 Allow C++03 delegate in etl::callback_timer 2023-08-18 20:54:47 +01:00
John Wellbelove
45fb06af3f Changes require for non-virtual messages 2023-08-18 20:51:36 +01:00
John Wellbelove
13d723f2db Merge branch 'development' of https://github.com/ETLCPP/etl into development 2023-08-15 12:41:13 +01:00
David Hebbeker
9985539787
Remove some unreachable code in bitset_new.h (#743)
Warning[Pe111]: statement is unreachable
2023-08-15 12:39:28 +01:00
John Wellbelove
27e9e3c1b8 Added support for self transitions 2023-08-13 14:10:55 +01:00
John Wellbelove
2c3fa4a796 Added multi char type strcmp, strncmp, strcpy & strncpy 2023-08-13 10:39:02 +01:00
John Wellbelove
9d59e2d77e Edited comments 2023-08-13 10:36:52 +01:00
John Wellbelove
2ec6ed54db Merge branch 'pull-request/#741-add-stringify-macro' into development 2023-08-13 10:34:11 +01:00
John Wellbelove
81815a2dc9 Updated stringify macro for variadic parameters 2023-08-13 10:33:48 +01:00
David Hebbeker
cab9b76821
add stringify macro (#741)
* Add include/linux/stringify.h from Linux kernel 2.6.12-rc2

(cherry picked from commit 1da177e4c3)

* Make __stringify support variable argument macros too

For example:

  __stringify(__entry->irq, __entry->ret)

will now convert it to:

  "REC->irq, REC->ret"

It also still supports single arguments as the old macro did.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <49DC6751.30308@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
(cherry picked from commit 8f7c2c3731)

* Add documentation.

* Adjust names in order to satisfy naming convention.

* Use __VA_ARGS__ instead a GNU extension as this works with more compilers.

Works with the newest versions of ICCAVR, GCC, CLANG and MSCV. C++11 may be required.

* Adjust to ETL folder structure.

* Change include guard to the one usual in ETL.

* Add definition guard for STRINGIFY.

---------

Co-authored-by: Linus Torvalds <torvalds@ppc970.osdl.org>
Co-authored-by: Zhaolei <zhaolei@cn.fujitsu.com>
2023-08-11 10:09:06 +01:00
John Wellbelove
81d2ec0f8d Added etl::bit_v for C++17 2023-08-10 12:08:42 +01:00
John Wellbelove
91eb44d657 Updated release notes and version 2023-08-10 12:08:41 +01:00
John Wellbelove
d1aaa77ade Resolve all C++ -O2 warnings
Resolve all C++ -O2 warnings

Resolve all C++ -O2 warnings
2023-08-10 12:08:18 +01:00
John Wellbelove
6eb5b359ad Updated release notes and version 2023-08-09 08:57:20 +01:00
John Wellbelove
d7fd06f795 Resolve all C++ -O2 warnings 2023-08-07 08:04:19 +01:00
John Wellbelove
8b5ff06e44 Resolve all C++ -O2 warnings 2023-08-06 23:39:11 +01:00
John Wellbelove
2b1d48d735 Added pessimizing-move warning disable for GCC 2023-08-04 11:58:31 +01:00
John Wellbelove
547184442d Possible fix 2023-08-04 11:58:31 +01:00
John Wellbelove
5fbf6c7684 Merge branch 'hotfix/#737-etl-equal-specialisation-for-etl--span-is-deduced-wrongly-when-using-STL-and-CPP20' into development 2023-08-04 11:58:08 +01:00
John Wellbelove
591996e21a Added C++20 four iterator std::equal variants 2023-08-04 11:57:49 +01:00
John Wellbelove
33a4a29caf Merge branch 'hotfix/#739-Could-not-compile-ETL-with-gcc-9.4.0-(C++11)' into development 2023-08-04 07:18:22 +01:00
John Wellbelove
a6b912e3e0 Added compatibility for GCC-9 + C++11 2023-08-04 07:18:03 +01:00
John Wellbelove
1b70808386 Changed assignment from etl::unexpected to use variant::emplace instead of direct assignment 2023-08-03 09:54:31 +01:00
John Wellbelove
21a4b523e9 Added missing return reference from emplace member function 2023-08-03 09:53:13 +01:00
John Wellbelove
0eaeb7977f Updated version and release notes 2023-07-18 19:05:11 +01:00
John Wellbelove
75be75bbec Merge branch 'pull-request/#733-Fix-etl--expected-assignment-from-etl--unexpected' into development 2023-07-18 11:33:13 +01:00
John Wellbelove
6da22a63e0 Merge branch 'pull-request/#734-add-missing-new-line-at-end-of-file' into development 2023-07-18 11:33:06 +01:00
John Wellbelove
2bbcf696dd Merge branch 'pull-request/#735-fix-bug-in-minmax-include-mismatch-detection' into development 2023-07-18 11:32:58 +01:00
John Wellbelove
8d1219bd72 #733-Fix-etl--expected-assignment-from-etl--unexpected
Added unit tests for changes
Added missing etl::forward in etl::expected::emplace
2023-07-18 10:46:29 +01:00
John Wellbelove
4a1dc781d6 #733-Fix-etl--expected-assignment-from-etl--unexpected
Added unit tests for changes
2023-07-18 09:40:47 +01:00
Manuel Knörle
1a3c2a788b
style: add missing new line at end of file (#734) 2023-07-18 08:12:53 +01:00
Vitmark97
9cd491e5aa
Fix etl::expected assignment from etl::unexpected (#733)
* Fix etl::expected assignment from etl::unexpected

* Make it more clear that assignment is from etl::unexpected
2023-07-18 06:40:14 +01:00
Manuel Knörle
cea24a6c20
fix(minmax): fix bug in minmax include mismatch detection (#735)
When using Green Hills, IAR or TASKING compiler the define
'ETL_PUSHED_MIN_MAX' is not set in 'minmax_push.h'.
Therefore the include of 'minmax_pop.h' always leads to
a compilation error (minmax_pop without matching push).
2023-07-18 06:39:15 +01:00
John Wellbelove
85ec267ea8 Refactored etl::forward_like for C++11 compatibility 2023-07-15 19:37:05 +01:00
John Wellbelove
73c96a4c6c Added etl::forward_like 2023-07-15 09:51:08 +01:00
John Wellbelove
24272d99c0 Enhanced min/max push/pop headers 2023-07-12 10:44:36 +01:00
John Wellbelove
0f6200e09c Added return to end of file 2023-07-12 10:41:02 +01:00
John Wellbelove
86b147d2a4 Updated version and release notes 2023-07-10 21:10:07 +01:00
Manuel Seeböck
8c47217982
fixed optional access operators (#730) 2023-07-10 19:47:28 +01:00
John Wellbelove
4c4c597fe5 Removed redundant ';' 2023-07-06 20:09:12 +01:00
John Wellbelove
e6a921c094 Add etl::forward wrapper around variadic arguments for create() 2023-07-05 20:18:24 +01:00
John Wellbelove
98c74bfda8 Updated version and release notes 2023-07-04 18:57:44 +01:00
John Wellbelove
635135dbc3 Synchronised generators with headers 2023-07-04 18:54:58 +01:00
Chiraffollo
1292c5eab8 Fix issue #722 Bitset accesses memory out of bounds (#724)
* Fix issue #722 Bitset accesses memory out of bounds

* Fix #709 in intrusive_list operator-> (#721)

* Fix issue #722 Bitset accesses memory out of bounds
2023-07-04 11:46:00 +01:00
John Wellbelove
3760b26339 Fixed rvalue overloads 2023-07-04 11:46:00 +01:00
Vitmark97
98be5be390 Added conditionally explicit etl::expected constructors that work in C++11 (#719) 2023-07-04 11:46:00 +01:00
John Wellbelove
4bcc0c2568 Fixed address sanitizer issues in unit tests 2023-07-04 11:45:11 +01:00
John Wellbelove
197e0815e6 PR for constexpr for etl::array 2023-07-04 11:45:11 +01:00
John Wellbelove
2d41441f02 Added ETL_CONSTEXPR11 as a synonym for ETL_CONSTEXPR 2023-07-04 11:45:11 +01:00
Vitmark97
5ed39c0e09 Allow manipulation of etl::array in constexpr function (#718)
* iota can be contexpr

* Make it possible to iterate over etl::array in constexpr functions
2023-07-04 11:45:10 +01:00
John Wellbelove
3510fd61a9 Updated intrusive links
Refactored intrusive_forward_list so that links report status consistantly
2023-07-04 11:45:10 +01:00
John Wellbelove
ed589c91c6 Added etl::is_forward_link, etl::is_bidirectional_link and etl::is_tree_link to intrusive links.
Added Constructors, access and status member functions to intrusive links.
2023-07-04 11:45:10 +01:00
John Wellbelove
c3c12da861 Initial updates and fixes 2023-07-04 11:45:10 +01:00
John Wellbelove
cfa39d9b4e Removed commented out line 2023-07-04 11:45:09 +01:00
John Wellbelove
5eec513d8a Added clear() to delegate 2023-07-04 11:45:09 +01:00
John Wellbelove
a0af0f9415 Modified the POD specialisation to accept objects that have deleted default constructors 2023-07-04 11:45:09 +01:00
John Wellbelove
8dad4e8efc Removed blank line 2023-07-04 11:41:01 +01:00
John Wellbelove
c9bb331f4c Added C++11 alignment matcher code 2023-07-04 11:41:01 +01:00
John Wellbelove
81cd2df218 Removed C++14 only feature from variant 2023-07-04 11:41:01 +01:00
Sencer Yazıcı
d5efffa96f fix missing class key with friend (#708) 2023-07-04 11:41:01 +01:00
John Wellbelove
177299977d Refactored visitor and variant to allow const variants and fix passing references to visitors 2023-07-04 11:41:00 +01:00
Chiraffollo
7f990d7a76
Fix #709 in intrusive_list operator-> (#721) 2023-07-01 12:40:07 +01:00
Daniel Jour
96092d841f
optional::operator=(nullopt_t) sets valid to false (#715)
* optional::operator=(nullopt_t) sets valid to false

Fixes https://github.com/ETLCPP/etl/issues/714

* Add test case for #714
2023-06-17 08:19:03 +01:00
Pasi Miettinen
f55fb92540
parameter_pack: Fix C++17 pedantic build (#707)
Co-authored-by: Pasi Miettinen <pasim@onenav.ai>
2023-06-09 18:15:03 +01:00
John Wellbelove
085d2c580a Fix flat map const placement new issue 2023-06-04 15:57:37 +01:00
John Wellbelove
5f9290b8d1 #698 Behaviour of bidirectional_link nodes 2023-05-31 11:32:46 +01:00
John Wellbelove
e0747bfd32 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2023-05-31 10:30:12 +01:00
Manuel Seeböck
adfaf07874
optional(POD) explicit operator bool (#699) 2023-05-31 10:29:43 +01:00
John Wellbelove
76bb902034 Added missing header include. 2023-05-28 10:03:46 +01:00
Michael Morgan
5ddc11b57d Add rvalue accessors to expected and optional, and update constructors. (#690)
* Add rvalue methods to optional and expected.

* Fix constructors in expected.h.

* Fix sanity checks.

---------

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2023-05-20 11:43:49 +01:00
John Wellbelove
7147baac50 Updated constructor member initialisation 2023-05-19 19:34:18 +01:00
John Wellbelove
1f4cb9f403 etl::overload in C++17 only 2023-05-16 10:40:06 +01:00
John Wellbelove
7e1a59d939 etl::variant updates and refactor 2023-05-16 10:16:53 +01:00
John Wellbelove
e21426112e etl::overload in C++17 only 2023-05-16 10:15:01 +01:00
John Wellbelove
b7a1b65276 Added const overloads of accept_visitor & accept_functor.
Marked all overloads od accept_visitor & accept_functor as deprecated.
Added new universal accept member function.
2023-05-15 17:22:07 +01:00
John Wellbelove
868b3f31f9 #695 Visiting a const variant (variadic) 2023-05-13 20:58:48 +01:00
John Wellbelove
9a6938d2c0 map optimisations 2023-05-12 10:52:40 +01:00
John Wellbelove
33319a6dbc C++03 compatibilty 2023-05-11 17:47:43 +01:00
John Wellbelove
db42c82d82 C++03 compatibilty 2023-05-11 17:15:34 +01:00
John Wellbelove
b407261314 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2023-05-11 15:51:55 +01:00
John Wellbelove
7fc0c575bb map optimisations 2023-05-11 15:50:53 +01:00
John Wellbelove
688ac131bb Removed [] operator 2023-05-11 09:50:05 +01:00
John Wellbelove
eaebff65b9 Formatting change 2023-05-11 09:49:43 +01:00
Manuel Seeböck
0872b22e8f
fixed etl::optional emplace (#693) 2023-05-10 11:51:46 +01:00
John Wellbelove
1c333bbe07 #691 etl::span copy constructor doesn't compile when types are not the same 2023-05-08 19:00:06 +01:00
John Wellbelove
52d46ebf62 Changed ARRAY_SIZE template parameter to Array_Size (part of a continuous mod to change all upper case constants to initial caps case 2023-05-05 12:50:39 +01:00
John Wellbelove
d219f4a3e9 Changed declaration of value_type in the top level classes 2023-05-05 12:49:04 +01:00
John Wellbelove
88f4718735 Changed 'class' to 'typename' 2023-05-05 12:45:41 +01:00
John Wellbelove
23472f1099 Made non-template functions inline 2023-05-05 12:45:13 +01:00
John Wellbelove
b7aa13ad19 Enhanced C++03 compatibility 2023-05-02 08:09:06 +01:00
devjoa
40c4fc7c10
feat(span): Add 'as_bytes' and 'as_writable_bytes' (#689)
These functions emulates the std C++20 functions std::as_bytes and
std::as_writable_bytes.
2023-05-01 23:39:55 +01:00