1975 Commits

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