1721 Commits

Author SHA1 Message Date
John Wellbelove
d9bff52343 added ETL_NODISCARD to binary_search 2022-08-23 19:46:45 +01:00
John Wellbelove
6a320608b9 class to typename 2022-08-23 19:38:25 +01:00
John Wellbelove
f7cb225857 Fixed conditional compilation 2022-08-23 18:04:40 +01:00
John Wellbelove
69e09299bf element_t replaced with element_type 2022-08-23 18:03:53 +01:00
John Wellbelove
a03f67a94a Removed the use of ETL_FORCE_CONSTEXPR_ALGORITHMS as all algorithms may be constexpr. 2022-08-20 13:30:25 +01:00
John Wellbelove
5dc9f49516 Removed the use of ETL_FORCE_CONSTEXPR_ALGORITHMS as all algorithms may be constexpr. 2022-08-20 12:44:34 +01:00
John Wellbelove
c99f2c1068 Renames + optimisations 2022-08-20 12:43:50 +01:00
John Wellbelove
2e7b635bfd Add asserts in to_string 2022-08-19 22:19:48 +01:00
John Wellbelove
ec4fb59b89 More to_string tests
Removed asserts so all functions are noexcept
2022-08-19 10:22:57 +01:00
John Wellbelove
e1bd545391 Major changes complete 2022-08-18 22:02:34 +01:00
John Wellbelove
7868445166 Work in progress
Modify specialisations for bitset element types
2022-08-17 20:35:44 +01:00
John Wellbelove
72263a9ced Work in progress
More tests
2022-08-16 18:10:05 +01:00
John Wellbelove
2d9c8ccd2a Work in progress
Start single element optimisations
2022-08-15 16:33:35 +01:00
John Wellbelove
42d272cae4 Work in progress
All tests for implicit bitset element type enabled
2022-08-15 14:57:42 +01:00
John Wellbelove
3a4af24ab7 Work in progress
Added more CHECK macros
Added bitset_fast class for bitsets that are the same size as an integral type
2022-08-13 12:15:41 +01:00
John Wellbelove
3ee5abf74b Work in progress 2022-08-12 13:39:24 +01:00
John Wellbelove
2df71e4384 Optimised bitset shift operations 2022-08-09 12:45:29 +01:00
John Wellbelove
ccfce560ae Optimised shifts 2022-08-09 12:45:29 +01:00
John Wellbelove
e10cd6dab3 Rationalised etl::send_message functions 2022-08-09 12:45:11 +01:00
John Wellbelove
9d33f9bf28 Added ability to set the bitset from wchar_t, char16_t and char32_t 2022-08-05 09:46:09 +01:00
John Wellbelove
86ae10a4ec Fixed implicit virtual warning for etl::vector 2022-08-04 17:07:19 +01:00
John Wellbelove
debbfddf35 Optimisations and addition of set() for all char types. 2022-08-04 16:31:51 +01:00
John Wellbelove
30d5a1b79b Added newline at end of file 2022-08-04 15:35:10 +01:00
John Wellbelove
5a9fc4dd00 Fixed C++03 delegate compatibility 2022-08-04 15:33:43 +01:00
John Wellbelove
7e8829d1b0 Changed operator= in etl::string_view from ETL_CONSTEXPR to ETL_CONSTEXPR14 2022-08-04 15:32:54 +01:00
John Wellbelove
87d00ad4d1 Added ARM5 and ARM6 compiler compatibility 2022-08-04 15:31:39 +01:00
John Wellbelove
2da99e81e6 Added missing char_traits unit tests and char_traits bug fixes 2022-08-04 15:31:09 +01:00
John Wellbelove
1b8d5a307a Changed std::lower_bound to etl::lower_bound 2022-08-04 15:29:59 +01:00
John Wellbelove
7ecd818ecc Merge branch 'feature/message-broker' of https://github.com/ETLCPP/etl into feature/message-broker
# Conflicts:
#	include/etl/generators/message_router_generator.h
#	include/etl/message_router.h
2022-08-02 14:23:12 +01:00
John Wellbelove
37b8115abf Added default message id constructors
etl::message_router default id is etl::imessage_router::MESSAGE_ROUTER
Added successor parameter constructors
2022-08-02 14:21:30 +01:00
John Wellbelove
19d99aa52d Added default message id constructors
etl::message_router default id is etl::imessage_router::MESSAGE_ROUTER
Added successor parameter constructors
2022-08-02 12:45:11 +01:00
John Wellbelove
fda4d704c3 Minor changes 2022-08-02 11:42:57 +01:00
John Wellbelove
e6a86a6285 Update release info 2022-08-01 16:28:40 +01:00
John Wellbelove
b80835108e Merge branch 'feature/message-broker' into development 2022-08-01 16:13:05 +01:00
John Wellbelove
3ad60c1e6c Finished message_broker code 2022-08-01 16:12:33 +01:00
John Wellbelove
838cdc24af Finished message_broker code 2022-08-01 13:00:20 +01:00
John Wellbelove
40290c4fa2 Partial implementation 2022-07-31 13:55:23 +01:00
John Wellbelove
e5fea50fab Standardise conditional compilation macros for ETL_USING_CPP11 and ETL_USING_STL 2022-07-31 09:53:34 +01:00
John Wellbelove
fce2b5ca8d Updated version info 2022-07-28 15:55:57 +01:00
John Wellbelove
1fa2116bd1 #573 more comfortable circular_buffer_ext construction 2022-07-28 15:55:38 +01:00
John Wellbelove
ec98d64697 Updated version info 2022-07-28 11:38:20 +01:00
John Wellbelove
a89db201c5 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2022-07-28 08:23:55 +01:00
benedekkupper
747867f1fa
Bip buffer improvements (#575)
* bip-buffer-spsc-atomic: read reserve default size is all available data

* bip-buffer-spsc-atomic: add API to write reserve in buffer space optimal way
2022-07-28 08:18:47 +01:00
Xavier
06eb494400
Invoke function pointers w/ parenthesis (#576) 2022-07-28 08:03:22 +01:00
John Wellbelove
cd18cc6af0 Eradicated all GCC and clang warnings 2022-07-27 10:42:03 +01:00
Joris Putcuyps
841f4610d0
Fix initialisation order (#570) 2022-07-24 19:08:54 +01:00
John Wellbelove
e4cf390956 Updated variant_pool generator 2022-07-24 17:45:37 +01:00
John Wellbelove
ea49e6a80f Updated generators scripts 2022-07-24 17:43:46 +01:00
John Wellbelove
23bf850785 Updated release versions 2022-07-24 17:26:39 +01:00
John Wellbelove
72740b5225 Fixed swap function for circular_buffer_ext
Fixed circular_buffer iterator -> operators
Added functions and macros to etl::debug_count
2022-07-24 17:24:46 +01:00
John Wellbelove
648b2490e0 Comment edits 2022-07-24 13:01:22 +01:00
John Wellbelove
df01759227 Optimised container move for external buffers 2022-07-24 13:01:07 +01:00
John Wellbelove
b2e1c35540 Fixed swap function for circular_buffer_ext
Fixed circular_buffer iterator -> operators
Added functions and macros to etl::debug_count
2022-07-24 12:56:44 +01:00
John Wellbelove
4316a4d7af Added tests for error handler macros
Fixed missing value parameter for exception + log configuration
2022-07-24 12:52:58 +01:00
John Wellbelove
adf9d690e1 Updated version and release notes 2022-07-20 14:32:43 +01:00
benedekkupper
e4c6c45772
error-handler: only return when the condition is false (#567) 2022-07-20 12:12:44 +01:00
John Wellbelove
93a0a0fe73 Addition of extra ETL_NODISCARD and ETL_NOEXCEPT to etl::span & etl::poly_span.
Fixed warnings for initialisation order for some etl::poly_span constructors.
2022-07-17 12:18:04 +01:00
John Wellbelove
4903e0cac8 Added is_enum 2022-07-14 20:14:26 +01:00
John Wellbelove
274a52db52 Merge branch 'feature/is_enum-implementation' into development 2022-07-14 17:59:19 +01:00
John Wellbelove
70e6989c99 Updated message router generator 2022-07-14 17:34:59 +01:00
John Wellbelove
67c2efb85c Added is_enum 2022-07-14 17:31:20 +01:00
Jesse Li
4d4a3c8ab9
is_enum (#561) 2022-07-14 15:38:49 +01:00
John Wellbelove
594255d50f class to typename 2022-07-14 15:35:26 +01:00
John Wellbelove
150a1f9058 Updated version numbers and release notes 2022-07-14 12:50:37 +01:00
John Wellbelove
1790868830 Merge branch 'feature/poly_span' into development
# Conflicts:
#	include/etl/span.h
2022-07-14 12:27:25 +01:00
John Wellbelove
bcf147f096 Added etl::poly_span
Refacted parts of etl::span
2022-07-14 12:19:08 +01:00
mhx
058e4c9ed2
etl/span.h: prevent compound statements in constexpr methods for C++11 (#562)
C++11 doesn't support compound statements in constexpr functions
and as a result, `etl/span.h` generates a heap of warnings with
gcc's `-Wpedantic` in C++11 mode. This changes the relevant method
bodies to contain just a single return statement.
2022-07-13 13:48:13 +01:00
John Wellbelove
7cc8d95157 Work in progress 2022-07-12 17:39:16 +01:00
John Wellbelove
21faaa349f Work in progress 2022-07-12 17:37:08 +01:00
John Wellbelove
870d0fd96a Green Hills compiler compatibility 2022-07-12 16:32:04 +01:00
John Wellbelove
f05f74fbd1 Work in progress 2022-07-12 13:16:11 +01:00
John Wellbelove
adf9bd5c20 Work in progress 2022-07-10 14:09:46 +01:00
John Wellbelove
9dca59bf40 etl::poly_span without etl::dynamic_extent 2022-07-04 20:24:39 +01:00
John Wellbelove
26d0dd9859 Initial forked code 2022-07-04 20:24:38 +01:00
John Wellbelove
50f5319382 Legacy variant is in namespace etl::legacy if ETL_IN_UNIT_TEST is not defined 2022-07-04 10:46:08 +01:00
John Wellbelove
97f4a34da8 Updated version and release notes 2022-07-03 11:18:47 +01:00
John Wellbelove
638de5bd40 Merge branch 'hotfix/#560-unable-to-upcast-legacy-variant' into development 2022-07-02 21:19:47 +01:00
John Wellbelove
3c07f46158 #560-unable-to-upcast-legacy-variant
Refactor of upcast to eliminate upcast_functor
Added is_base_of member function
2022-07-02 21:19:15 +01:00
John Wellbelove
a074b42b91 Added non-member etl::send_message for etl::shared_message 2022-06-27 11:03:23 +01:00
John Wellbelove
b77c7753d3 Updated message_packet_generator.h to match etl::message_packet changes 2022-06-27 10:07:23 +01:00
John Wellbelove
c5d41f9d87 Updated message_packet_generator.h 2022-06-24 19:39:40 +01:00
John Wellbelove
2c6c46ee18 Updated versions 2022-06-24 16:28:48 +01:00
John Wellbelove
c0923e1d6a Fix to message_packet
Fix tests for atomic under GCC
2022-06-24 15:59:25 +01:00
John Wellbelove
1b3445d11a Fixed etl::message_packet issues 2022-06-24 14:58:53 +01:00
John Wellbelove
3c26ffea4e dded etl::byte_stream_overflow assert to byte_stream_reader 'skip'. 2022-06-23 19:49:20 +01:00
John Wellbelove
829d9fa220 Renamed cumulative_moving _average to pseudo_moving_average
Modified etl::debounce internal enumeration names to avoid clashes with Arduino
2022-06-22 17:37:59 +01:00
John Wellbelove
c2ba195092 Updated version information 2022-06-22 14:10:39 +01:00
John Wellbelove
d4a3af56a7 const_reference parameter for resize() 2022-06-22 11:19:40 +01:00
John Wellbelove
22060623fc Added skip functions 2022-06-22 10:05:14 +01:00
John Wellbelove
c49f56722c Added two new traits to get a standard signed or unsigned integral of the same size as the template type. 2022-06-22 10:01:38 +01:00
John Wellbelove
08d76a9d56 Added size_bits() to bit_stream reader 2022-06-21 09:00:20 +01:00
John Wellbelove
ad2f95ac79 Optimisations 2022-06-20 09:25:39 +01:00
John Wellbelove
5a460f7fec Latest refactoring
Added little endian bit stream reader tests
2022-06-19 18:37:20 +01:00
John Wellbelove
fefe6d3975 Added endianness to bit_stream_writer 2022-06-18 20:57:26 +01:00
John Wellbelove
bf49fe60e6 Finished bit_stream_reader tests 2022-06-15 11:43:55 +01:00
John Wellbelove
f88999bb12 Latest updates to bit_stream_reader 2022-06-15 11:43:54 +01:00
John Wellbelove
6a8cdf6892 Added error exceptions to byte_stream_writer 2022-06-15 11:43:54 +01:00
John Wellbelove
557544892c Renamed ETL_ALWAYS_ASSERT to ETL_ASSERT_FAIL 2022-06-15 11:43:54 +01:00
John Wellbelove
0e6dff2767 Added callback functionality to bit_stream_writer 2022-06-15 11:43:54 +01:00
John Wellbelove
e9c6bf689e Fixed cast 2022-06-15 11:43:53 +01:00
John Wellbelove
9e0ff809fd Initial bit_stream_writer code 2022-06-15 11:43:12 +01:00
John Wellbelove
bb3190452c Added ETL_NODISCARD to 'create' and 'is_valid' functions 2022-06-15 11:38:43 +01:00
John Wellbelove
ce76e1b628 Merge branch 'feature/variant-visit' into development
# Conflicts:
#	include/etl/private/variant_legacy.h
#	include/etl/private/variant_variadic.h
#	test/vs2019/etl.vcxproj.filters
2022-06-14 11:47:50 +01:00
John Wellbelove
314cb452f7 Merge branch 'feature/variant-visit' into development
# Conflicts:
#	include/etl/private/variant_legacy.h
#	include/etl/private/variant_variadic.h
#	test/vs2019/etl.vcxproj.filters
2022-06-14 11:47:30 +01:00
John Wellbelove
c6e31f381f Added tests 2022-06-14 09:54:17 +01:00
John Wellbelove
03c97b64fe Updated copyright authors 2022-06-10 21:48:12 +01:00
John Wellbelove
baa47d1c33 Updated copyright notice 2022-06-10 21:45:37 +01:00
John Wellbelove
cf24398209 Refactor etl::atomic implementations to allow non-(integrals/pointers/bool)
Changed etl::atomic and etl::mutex, with STL enabled, to be template aliases
2022-06-10 21:45:34 +01:00
John Wellbelove
047fc3eb90 Refactor C++17 message_packet 2022-06-10 21:45:34 +01:00
John Wellbelove
e864fe62d5 Added optional byte_stream callback 2022-06-10 21:45:33 +01:00
John Wellbelove
4b0abaec6b Remove duplicate void_t definition 2022-06-10 21:44:47 +01:00
Robin Söderholm
0ace9654da
Feature/variant visit (#554)
* add variant visit to c++11 and above

* visit legacy added

* update with multiple variants visit for variadic

* make it build on gcc and clang ubuntu
remove declval from utility.h due to ambiguity against type_traits.h version when using STL
2022-06-10 18:56:18 +01:00
John Wellbelove
9c4d8d6f1d Fixed duplicate etl::declval definition. 2022-06-10 18:53:48 +01:00
Ashley Roll
aad52bb91c
Fix comment in queue::del_out (#553)
Seems it was copied from stack implementation, but queue increments out
not, decrements it.
2022-06-10 15:11:12 +01:00
John Wellbelove
dd89f1c748 Interim changes after PR 2022-06-10 11:18:48 +01:00
Robin Söderholm
89be7e62cf
Feature/variant visit (#552)
* add variant visit to c++11 and above

* visit legacy added

* update with multiple variants visit for variadic
2022-06-09 08:56:55 +01:00
gerschdn
8669afec86
Update vector.h (#551)
Made the value parameter to resize() a const_reference instead of a value type to spare the unnecessary copy
2022-06-03 17:10:52 +01:00
John Wellbelove
752d9adb5c Fixed final sanitizer issues 2022-05-19 11:10:00 +01:00
John Wellbelove
aaf1f84935 Updates to etl::successor 2022-05-18 16:49:42 +01:00
John Wellbelove
7bb39b56bf Added skip() to byte_stream_writer. 2022-05-17 17:04:47 +01:00
John Wellbelove
645296b925 #545 Option to make string truncation an error." generates compiling warnings 2022-05-17 15:20:39 +01:00
John Wellbelove
c09a1885b5 Merge branch 'hot-fix/#536-undefined-behaviour-and-memory-issues' into development
# Conflicts:
#	test/CMakeLists.txt
2022-05-17 15:03:05 +01:00
John Wellbelove
da58dfe018 Added conditional compilation directive for existence 8 bit types 2022-05-17 10:42:31 +01:00
John Wellbelove
9224df106e Fixed data alignment issues raised by sanitizer 2022-05-16 20:58:07 +01:00
John Wellbelove
0d4c663d0b 64 bit conversion type fixes 2022-05-16 20:56:25 +01:00
John Wellbelove
7b3bb5fa6d Fixed incorrect returned span length for byte stream read 2022-05-15 18:01:44 +01:00
John Wellbelove
7c3d8490c4 indirect_vector updates from sanitizer results 2022-05-13 14:43:36 +01:00
John Wellbelove
87f40fe813 Updates to etl::successor and derived classes. 2022-05-11 16:04:25 +01:00
John Wellbelove
44db411d0d Multiple sanitizer fixes. 2022-05-08 11:10:42 +01:00
John Wellbelove
882bbab022 Minor updates
Revert some #536 code
2022-04-29 10:29:22 +01:00
Jeremy Overesch
8ac2db0dbe
Feature/pass partial handled events to parent (#541)
* Pass partial handled events to parent.

* Fix the generator file for C++17.
2022-04-28 15:29:11 +01:00
John Wellbelove
ce40641baf Squashed commit of the following:
commit 2c3b225972d2d1182133ed9f55bd8aaa58650338
Author: Thomas Sommer <thomas@tomsaw.de>
Date:   Mon Apr 25 10:54:10 2022 +0200

    removed unused irouter instanciation (#537)

commit 5468eb659c8b4ecdb3d08e8b8f0442c5a2549a48
Author: Gabriel Arjones <arjones@arjones.com>
Date:   Thu Apr 14 17:55:27 2022 -0300

    cmake: write an arch independent version file (#534)
2022-04-25 11:06:09 +02:00
John Wellbelove
90e4316f8f Interim fixes 2022-04-25 10:30:54 +02:00
John Wellbelove
36d126c93e Squashed commit of the following:
commit c217b3ec12b26104e8f1027c1766cc9d49b93a29
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Thu Apr 21 11:57:55 2022 +0200

    Added mutex traits

    Added transparent comparator test to multimap

commit b6487b869e5599ea067d45af1778d5c0f90c6a52
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Thu Apr 21 10:42:06 2022 +0200

    Modified char8_t, char16_t and char32_t macros.

    Added conditional compilation on the presense of native char8_t, char16_t and char32_t types.

commit 2c2bd86ce3d5d5d698e922518421a93f70a9cc1e
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Thu Apr 21 10:29:04 2022 +0200

    Modified char8_t, char16_t and char32_t macros.

    Added conditional compilation on the presense of native char8_t, char16_t and char32_t types.

commit d16242d20e9b6df6752a926d862d0016a452bada
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Wed Apr 20 13:53:37 2022 +0200

    Expanded constexpr test

commit fad097e6656cd4639c2d81bc8cad2467cae4b4ce
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Wed Apr 20 13:53:05 2022 +0200

    Added ETL_OVERRIDE to state chart process_event()

commit 25403c2225f3aff0b99105a54cfc44f1cf88d527
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Wed Apr 20 13:41:00 2022 +0200

    Added test_etl_traits

commit e42c778cf645cb8fc06e5930336e7f1183004dfe
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Wed Apr 20 13:38:22 2022 +0200

    Removed unused code.

commit 5a25c0c1973f7094ef3aa5b6f29529e96450451c
Author: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Date:   Sun Apr 17 13:17:29 2022 +0200

    Large and small character support macros

commit 6a463fb65ef655b700a8dea381265a3c1b622658
Author: Melg Eight <public.melg8@gmail.com>
Date:   Sun Apr 17 13:54:34 2022 +0300

    Fix spelling (#535)

    Signed-off-by: Melg Eight <public.melg8@gmail.com>

commit 5468eb659c8b4ecdb3d08e8b8f0442c5a2549a48
Author: Gabriel Arjones <arjones@arjones.com>
Date:   Thu Apr 14 17:55:27 2022 -0300

    cmake: write an arch independent version file (#534)
2022-04-21 12:11:26 +02:00
John Wellbelove
05e85b9e90 Added mutex traits
Added transparent comparator test to multimap
2022-04-21 11:57:55 +02:00
John Wellbelove
e44d1ad01d Modified char8_t, char16_t and char32_t macros.
Added conditional compilation on the presense of native char8_t, char16_t and char32_t types.
2022-04-21 10:42:06 +02:00
John Wellbelove
cd9d199dde Modified char8_t, char16_t and char32_t macros.
Added conditional compilation on the presense of native char8_t, char16_t and char32_t types.
2022-04-21 10:29:04 +02:00
John Wellbelove
7cefbc941a Added ETL_OVERRIDE to state chart process_event() 2022-04-20 13:53:05 +02:00
John Wellbelove
63c05fb6b9 Large and small character support macros 2022-04-17 13:17:29 +02:00
John Wellbelove
42acd8beaa #531 Fixed: Compilation of etl::reference_counted_message_pool with ETL_LOG_ERROR enabled due to non-public inheritance. 2022-04-11 12:35:47 +02:00
valentink-eroad
70cc720fae
Fix compilation of reference_counted_message_pool with ETL_LOG_ERRORS enabled (#531) 2022-04-11 11:25:25 +02:00
John Wellbelove
0c78d38958 #529 Optimised min_element, max_element and min_max_element implementations 2022-04-09 22:38:35 +02:00
John Wellbelove
f68b3d7796 Lastest release script version 2022-04-09 21:38:35 +02:00
John Wellbelove
3b66ced782 #530 etl::nth_type not implemented correctly 2022-04-08 18:08:53 +02:00
John Wellbelove
ce93358e95 Lastest release script version 2022-04-08 09:37:21 +02:00
John Wellbelove
3f1c640eff cplusplus traits is now 'long' 2022-04-01 11:55:32 +02:00
John Wellbelove
b18d32f77b Merge branch 'hotfix/optimise-circular-buffer-push-and-pop' into development 2022-03-26 18:30:59 +00:00
John Wellbelove
eb49582837 Small optimisations for computing indexes for queues & cyclic_value. 2022-03-26 18:30:33 +00:00
Steffen Zimmermann
148cf9ef26
fix unused-local-typedefs warning (#517)
clang complains about the line:

include/etl/algorithm.h:298:66: error: typedef 'value_type' locally defined but not used [-Werror=unused-local-typedefs]
typedef typename etl::iterator_traits<TIterator>::value_type value_type;
2022-03-25 10:42:18 +00:00
John Wellbelove
1b5da4a4b2 Fixed undefined macros when compiler type is defined by the user
Updated version numbers
2022-03-24 14:46:38 +00:00
John Wellbelove
fa7f6dc9d7 Fixed move parameter in notify_observers 2022-03-23 19:59:30 +00:00
John Wellbelove
5577170fd2 Updated version numbers 2022-03-23 11:30:31 +00:00
John Wellbelove
aad0dabebe Re-initroduced etl::functor
Added constexpr to etl::member_function_wrapper and etl:;functor_wrapper
2022-03-22 15:16:51 +00:00
John Wellbelove
6a00274b75 Removed commented out code 2022-03-22 15:15:28 +00:00
John Wellbelove
1be86f8566 Added etl::member_function_wrapper and etl::functor_wrapper to utility.h 2022-03-22 13:51:02 +00:00
John Wellbelove
5b3454ad10 Fixed mem_set parameter type 2022-03-22 00:46:51 +00:00
John Wellbelove
422c5e0d36 The counter in etl::debug_count is atomic, if available 2022-03-20 11:48:02 +00:00
John Wellbelove
6f99c2b3a9 Added template wrappers around memcpy, memmove, memcmp, memset& memchr.
Added C++23 macro
Updated version numbers
2022-03-19 21:29:29 +00:00
John Wellbelove
dbed55c507 Added C++23 macros 2022-03-18 15:29:53 +00:00
John Wellbelove
a8ecaf635b Remove mem macros 2022-03-18 15:29:37 +00:00
John Wellbelove
87080285e6 Merge branch 'feature/#515-make-unaligned-types-fully-constexpr' into development
# Conflicts:
#	include/etl/algorithm.h
#	include/etl/endianness.h
2022-03-18 15:19:54 +00:00
John Wellbelove
1c03e57aba Made etl::unaligned_type constexpr 2022-03-18 15:14:23 +00:00
John Wellbelove
b0e9ab8fd2 Made etl::swap ETL_CONSTEXPR14 2022-03-18 15:12:44 +00:00
John Wellbelove
ae92932788 Changed ETL_ENDIANNESS_IS_CONSTEXPR to ETL_HAS_CONSTEXPR_ENDIANNESS 2022-03-18 15:12:05 +00:00
John Wellbelove
779a900b67 Changed ETL_CONSTEXPR17 to ETL_CONSTEXPR14 for reverse iterators 2022-03-18 15:11:12 +00:00
John Wellbelove
d5c91ae739 Removed builtin mem macros
Not always constexpr compatible for all types
2022-03-18 15:10:21 +00:00
John Wellbelove
b0f5a99e15 Added macros for namespace identification 2022-03-18 15:09:26 +00:00
John Wellbelove
2423745786 Fixed missing lines for cplusplus trait 2022-03-12 10:15:19 +00:00
John Wellbelove
740e490aed Tested ETL traits code. 2022-03-11 20:28:26 +00:00
John Wellbelove
43100b2cf4 Initial code 2022-03-07 13:11:28 +00:00
John Wellbelove
c8f13fa8b8 Remove initializer_list selection logic. 2022-03-05 18:02:47 +00:00
John Wellbelove
55aa55a269 Added optional counter type to instance_count. 2022-03-05 18:00:37 +00:00
John Wellbelove
dda482a321 Updated how the definition of initializer_list is selected. 2022-03-05 17:59:48 +00:00
John Wellbelove
292f5d9176 Modified logic for enabling the use of initializer lists 2022-03-04 20:54:38 +00:00
John Wellbelove
2c6ffdc36f Updated version numbers and release notes. 2022-03-03 20:01:18 +00:00
John Wellbelove
b5b09274ce Added extra sanity checks for new classes 2022-03-03 18:39:23 +00:00
John Wellbelove
c34ac53a4e Changes the order of callback and re-insertion of the timer in the active list. 2022-03-03 14:34:01 +00:00
John Wellbelove
0a163463c2 Added callback and message timers for interrupts. 2022-03-03 14:31:24 +00:00
John Wellbelove
a1e3017028 Semaphore macro type is local to timer classes 2022-03-02 19:38:11 +00:00
John Wellbelove
290f7a86ac Changed atomic timers to use a user supplied atomic semaphore counter. 2022-03-02 19:26:19 +00:00
John Wellbelove
d8405bfa00 Changed from C cast to C++ cast 2022-02-26 11:17:36 +00:00
John Wellbelove
8da7251e82 Always use stddef.h 2022-02-26 11:17:07 +00:00
John Wellbelove
3c36bc382a Modified WCHAR_MIN and WCHAR_MAX checks 2022-02-26 11:16:26 +00:00
John Wellbelove
3c38a7d0c4 Added char8_t type 2022-02-26 11:15:42 +00:00
John Wellbelove
f355a4e8d6 Fix 'unused function parameter' warnings 2022-02-26 11:15:17 +00:00
John Wellbelove
734df1a372 Merge branch 'development' 2022-02-20 19:28:22 +00:00
John Wellbelove
90b20e626b Updated versions 2022-02-20 19:14:25 +00:00
John Wellbelove
679304b9f5 Adjusted initializer_list include logic 2022-02-20 18:57:06 +00:00
John Wellbelove
60757a44ab callback and message timers now uses etl::timer_semaphore_t 2022-02-20 18:49:43 +00:00
John Wellbelove
8644b833a3 Fixed send_message signatures 2022-02-20 18:46:15 +00:00
John Wellbelove
4e9471aac0 Comment typo 2022-02-16 11:16:13 +00:00
John Wellbelove
1aead2e59f Simplified std::byte for C++03 2022-02-16 08:49:26 +00:00
John Wellbelove
b472563b62 Added C++03 implementation 2022-02-15 20:58:19 +00:00
John Wellbelove
e5fd40d82b Added etl::byte 2022-02-15 16:41:47 +00:00
John Wellbelove
61d0db16b6 Merge branch 'development' 2022-02-15 10:55:04 +00:00
John Wellbelove
86c0813d93 Added fill() member functions to array_view, circular_buffer, deque, indirect_vector and vector 2022-02-15 10:54:44 +00:00
John Wellbelove
977b937fff Fixed specialisation for copy_backward 2022-02-14 20:25:44 +00:00
John Wellbelove
1cdb4c69b6 Final initializer_list updates
Added a separate project to test initializer_list
2022-02-14 11:06:09 +00:00
John Wellbelove
117902e39a Updates to sanity check
Added Intel compiler support to MSVC
2022-02-11 21:21:57 +00:00
John Wellbelove
c3c1afa284 Removed pre-processor error for missing atomics 2022-02-11 17:36:55 +00:00
John Wellbelove
8c45d2cc2a Added sanity checks for initializer_list 2022-02-11 15:00:35 +00:00
John Wellbelove
64edec227d Initial code for MSVC, GCC, Clang and ARM6 compilers 2022-02-11 13:40:03 +00:00
John Wellbelove
d0150696a5 Changes for controlling the availability of constexpr algorithms 2022-02-11 09:57:55 +00:00
John Wellbelove
fa79112144 Added Green Hills compiler check 2022-02-10 18:42:16 +00:00
John Wellbelove
05e687d8fa Syntax error fixes 2022-02-10 18:41:30 +00:00
John Wellbelove
64efb84ec3 Singleton class 2022-02-10 18:40:52 +00:00
John Wellbelove
ee79392b7b Merge branch 'hotfix/pr-#505-put-storage-class-first-and-remove-unreachable-statement' into development 2022-02-08 18:28:33 +00:00
John Wellbelove
04590ef865 Remove inline 2022-02-08 18:28:25 +00:00
Jochen Steinmann
180841fa26
Put storage class first and remove unreachable statement (#505)
Fixes following greenhills compiler warnings
* etl/include/etl/message_router.h", line 2434 (col. 11): warning #111-D: statement is unreachable
* etl/include/etl/char_traits.h", line 105 (col. 19): warning #82-D: storage class is not first

Co-authored-by: Jochen Steinmann <jochen.steinmann2@de.bosch.com>
2022-02-07 10:51:10 +00:00
John Wellbelove
c65da15063 Tweak built-in tests 2022-02-06 17:58:22 +00:00
John Wellbelove
08e2d4c4d0 Updated version numbers 2022-02-04 11:45:26 +00:00
John Wellbelove
87fe3eec2d Replaced post increment with pre increment 2022-02-03 17:16:26 +00:00
John Wellbelove
791aa97885 Work in progress 2022-02-03 12:40:29 +00:00
John Wellbelove
19a4b93e78 Fixed const-ETL_CONSTANT mismatch. 2022-01-29 22:14:10 +00:00
John Wellbelove
4b1b6004c6 Final(?) changes 2022-01-29 14:16:26 +00:00
John Wellbelove
68d5f39c7c Merge branch 'master' into feature/constexpr-for-string_view 2022-01-25 10:49:56 +00:00
John Wellbelove
734e4e654a Minor changes
Modified MSVC compiler C++11 check
2022-01-24 20:15:17 +00:00
John Wellbelove
3b7f280b32 Reinstated get_state_id() and start() functions in he base class. 2022-01-24 17:36:47 +00:00
John Wellbelove
64b6c20d19 Merge branch 'master' into feature/constexpr-for-string_view
# Conflicts:
#	include/etl/iterator.h
#	include/etl/platform.h
#	test/vs2019/etl.vcxproj
#	test/vs2019/etl.vcxproj.filters
2022-01-23 18:26:52 +00:00
John Wellbelove
13b28387c5 Merge branch 'feature/reduce-size-of-state_chart' into development 2022-01-23 14:23:44 +00:00
John Wellbelove
2353672b64 Renamed compile time state machine classes 2022-01-23 10:46:35 +00:00
John Wellbelove
4d0682e196 Merge branch 'hotfix/bitset' into development 2022-01-22 16:17:09 +00:00
John Wellbelove
e98270ca60 Bitset updates 2022-01-22 16:16:44 +00:00
Tom
1f7ebe3ee8
Added to_string, to_ulong and to_ullong to bitset (#499)
* Added to_string, to_ulong and to_ullong to bitset

* Reverted whitspace changes

* Arduino has NAN defined, but not nan, nanf nor nanl

(it got __builtin_nan, but I don't think this is what we want here...)

* Added missing typenames
2022-01-22 11:48:34 +00:00
Tom
b5a5f0e83a
Fixed bug where invert changed bits over the TOP_MASK (#500) 2022-01-22 11:48:08 +00:00
Tom
09e7b3ff1f
Handled SIZE == 0 edge cases (#501) 2022-01-22 11:47:39 +00:00
John Wellbelove
d2e4774ca1 Improved support for MSVC language level detection 2022-01-21 10:05:47 +00:00
John Wellbelove
fc59b4e34e Latest state chart code
Reinstated virtual process_event()
2022-01-20 11:05:37 +00:00
John Wellbelove
f3973e4935 Latest state chart code
Reinstated virtual process_event()
2022-01-18 20:15:56 +00:00
John Wellbelove
7c3c7ea05e Removal of redundant code 2022-01-18 20:14:55 +00:00
John Wellbelove
8337c87f16 Initial state_chart changes 2022-01-17 11:19:19 +00:00
John Wellbelove
e263a7cb75 Initial state_chart changes 2022-01-16 13:30:52 +00:00
John Wellbelove
0a6e22ae2a Initial state_chart changes 2022-01-15 19:06:20 +00:00
John Wellbelove
c3b603be32 Fixed IAR warnings in binary.h
Fixe unaligned type_comment
platform.h comments
Fixed etl_profile.h to native little endian for !C++20 or !STL
2022-01-14 10:08:46 +00:00
John Wellbelove
912427849d Updated version numbers 2022-01-13 12:46:41 +00:00
John Wellbelove
f8b2773684 Some ETL_CONSTEXPR. Added size() 2022-01-13 10:53:14 +00:00
John Wellbelove
f58a20294a Added index operators
Split code into type and non-type dependent classes
2022-01-12 18:36:34 +00:00
John Wellbelove
17c287af9d Completed unaligned_type 2022-01-11 17:44:40 +00:00
John Wellbelove
7f6b6d9098 Updates to endianness 2022-01-11 17:43:53 +00:00
John Wellbelove
cf0daf6c6b Changed inline functions to templates 2022-01-11 17:43:30 +00:00
John Wellbelove
cb243f78ca Updated bit_cast 2022-01-11 17:42:56 +00:00
John Wellbelove
9bea87dd90 Removed unnecessary inline keywords 2022-01-11 16:19:24 +00:00
John Wellbelove
973e0f8ea6 Renamed 8bit check macro 2022-01-10 00:35:02 +00:00
John Wellbelove
f06a027da7 Moved void_t definition 2022-01-08 19:27:16 +00:00
John Wellbelove
6b123e1bdb Merge branch 'feature/bit_cast-midpoint-lerp' into feature/unaligned-types
# Conflicts:
#	include/etl/endianness.h
#	test/vs2019/etl.vcxproj.filters
2022-01-08 18:53:17 +00:00
John Wellbelove
e6736404ed Final code after local CI tests 2022-01-08 18:51:35 +00:00
John Wellbelove
c99d984453 Updates to bin.h, binary.h and endian.h 2022-01-08 11:38:04 +00:00
John Wellbelove
79c659b0bb unaligned and endianess experiments 2022-01-06 10:18:58 +00:00
John Wellbelove
2cf77bf837 Initial experimental unaligned fundamental types 2022-01-04 12:32:56 +00:00
John Wellbelove
7c4fbcc8f0 Initial experimental unaligned fundamental types 2022-01-04 12:04:56 +00:00
John Wellbelove
dc2ad30294 Iterator is more SFINAE compatible 2022-01-03 18:23:04 +00:00
John Wellbelove
9665ab21c1 Updated endianness for C++20 2022-01-03 18:22:08 +00:00
John Wellbelove
b8579f0151 Initial bit tests 2022-01-03 18:21:45 +00:00
John Wellbelove
dc563239e5 Added all permutations of leading/trailing bit tests 2022-01-03 18:21:19 +00:00
John Wellbelove
d4cc115509 Modified C++ language level detection 2022-01-03 18:20:14 +00:00
John Wellbelove
cf0b816bc1 Update to support C++20 2022-01-02 14:20:10 +00:00
John Wellbelove
7ad3b51308 Added etl::lerp & initial reverse engineered <bit> header 2021-12-31 09:52:02 +00:00
John Wellbelove
4f05600900 Added delegate test from std::function 2021-12-30 09:36:36 +00:00
John Wellbelove
2643f8ef4b Added etl::midpoint 2021-12-28 18:42:17 +00:00
John Wellbelove
e4ab79b243 Initial code 2021-12-24 13:13:32 +00:00
John Wellbelove
064c7dc16b GCC fixes for unit tests 2021-12-24 09:25:24 +00:00
John Wellbelove
b98fd16e36 array_view updates 2021-12-22 18:58:15 +00:00
John Wellbelove
de5a90a91c Added Green Hills compiler to minmax push and pop
message_packet updates

message_packet updates

span updates

message_packet updates

message_packet updates

Remove superfluous line

Fixe undefined behaviour in test
2021-12-21 12:04:51 +00:00
John Wellbelove
6f6ebe456b Fix for double formatting with precision > 9 (#480)
* Add a test that reproduces the double formatting failure

* Fix root cause, restrict precision to 9 on 32 bit platforms, unrestricted on 64 bit
2021-12-15 19:26:17 +00:00
Noah Luskey
36782f77c0 Fix for double formatting with precision > 9 (#480)
* Add a test that reproduces the double formatting failure

* Fix root cause, restrict precision to 9 on 32 bit platforms, unrestricted on 64 bit
2021-12-15 17:27:57 +00:00
John Wellbelove
4acad4206d Disable span TContainer constructor for arrays 2021-12-15 12:48:39 +00:00
John Wellbelove
67474499c2 Disable span TContainer constructor for arrays 2021-12-15 12:21:10 +00:00
John Wellbelove
cb7ee61b33 Disable span TContainer constructor for arrays 2021-12-14 17:23:26 +00:00
John Wellbelove
6827a73ff8 Disable span TContainer constructor for arrays 2021-12-14 17:23:26 +00:00
John Wellbelove
d2ba5e9956 Multiple code changes, delegates & timers 2021-12-14 10:52:49 +00:00
John Wellbelove
331e07b272 Multiple code changes, delegates & timers 2021-12-13 17:16:21 +00:00
John Wellbelove
44715cadfe Experimental code 2021-12-12 18:20:45 +00:00
John Wellbelove
6b91aaeb1d Merge branch 'development' of https://github.com/ETLCPP/etl into development 2021-12-05 15:54:33 +00:00
John Wellbelove
06e8aaf8d4 #475 When ETL_NO_ATOMICS is defined the timer.h file should not define timer_semaphore_t
#471 Add contains() method to etl::map and etl::set
#477 deque::resize should throw deque_full if requested size is too large
2021-12-05 15:39:11 +00:00
John Wellbelove
f5514104e7 contains() & transparent comparator 2021-12-04 17:28:47 +00:00
John Wellbelove
6e1e75094f Re-enable multi_vector 2021-12-04 11:00:51 +00:00
John Wellbelove
c6ff32e901 contains() & transparent comparator 2021-12-04 10:24:04 +00:00
John Wellbelove
4d48082f4f contains() & transparent comparator for map, multimap, set and multiset 2021-12-01 18:42:22 +00:00
John Wellbelove
85fb83f0be contains() & transparent comparator for reference set and multiset 2021-12-01 13:19:31 +00:00
John Wellbelove
a16ae414a2 contains() & transparent comparator for set and multiset 2021-11-27 18:42:30 +00:00
John Wellbelove
042da035fa contains() & transparent comparator for map and multimap 2021-11-27 17:57:51 +00:00
John Wellbelove
015003fa03 contains() for etl::map 2021-11-26 19:35:18 +00:00
John Wellbelove
5fa7ee22ab Merge branch 'master' into feature/constexpr-for-string_view
# Conflicts:
#	include/etl/array.h
#	include/etl/deque.h
#	include/etl/forward_list.h
#	include/etl/generators/type_traits_generator.h
#	include/etl/list.h
#	include/etl/platform.h
#	include/etl/vector.h
#	meson.build
#	test/test_array.cpp
#	test/test_deque.cpp
#	test/test_flat_map.cpp
#	test/test_flat_multimap.cpp
#	test/test_flat_multiset.cpp
#	test/test_flat_set.cpp
#	test/test_forward_list.cpp
#	test/test_list.cpp
#	test/test_map.cpp
#	test/test_multimap.cpp
#	test/test_multiset.cpp
#	test/test_set.cpp
#	test/vs2019/etl.vcxproj.filters
2021-11-26 18:10:57 +00:00
John Wellbelove
3e98f4c537 Fixes for Ubuntu 18 2021-11-21 16:45:37 +00:00
John Wellbelove
ed0d2f5759 Fixes for Ubuntu 18 2021-11-21 16:38:16 +00:00
John Wellbelove
6c3deb2426 Fixes for Ubuntu 18 2021-11-21 16:25:18 +00:00
John Wellbelove
02cee8c2a3 Fixes for Ubuntu 18 2021-11-21 16:17:23 +00:00
John Wellbelove
e3aea9105c Fixes for Ubuntu 18 2021-11-21 16:07:44 +00:00
John Wellbelove
2ecc0aa287 Fixes for Ubuntu 18 2021-11-21 14:47:16 +00:00
John Wellbelove
42f9505237 Fixes for Ubuntu 18 2021-11-21 14:37:58 +00:00
John Wellbelove
f5f93926c9 Fixes for Ubuntu 18 2021-11-21 14:32:49 +00:00
John Wellbelove
b9778190dc Updated version numbers 2021-11-21 12:35:30 +00:00
John Wellbelove
fa637f794e Update to const_iterator parameter for insert. 2021-11-21 10:36:09 +00:00
John Wellbelove
8872b9a0ae const_iterator parameters for containers 2021-11-20 19:04:39 +00:00
John Wellbelove
11fa2e4e38 Merge branch 'hotfix/remove-template-overload-abiguity' into development
# Conflicts:
#	include/etl/forward_list.h
#	include/etl/list.h
#	include/etl/vector.h
#	test/test_forward_list.cpp
#	test/test_list.cpp
2021-11-19 11:23:50 +00:00
John Wellbelove
7aaf37e21d Updated deque 2021-11-19 11:20:49 +00:00
Bo Rydberg
a41418ed91
Fix compile error for vector assign and insert with same type non-iterator (#466) 2021-11-19 11:05:04 +00:00
Bo Rydberg
e4431d3940
Fix compile error insert/assign two same types non-iterator (#467)
Assignent and insert_after of count and values of same types has to work
2021-11-19 11:04:41 +00:00
Bo Rydberg
94507ad1c6
Fix list insert and assign errors (#468)
Also fixing some test asserts related to etl::list.
2021-11-19 11:04:10 +00:00
John Wellbelove
b61c5e0442 Modified deque const_iterator to iterator 2021-11-18 13:29:48 +00:00
John Wellbelove
642e36a9c4 Modified deque const_iterator to iterator 2021-11-18 12:58:33 +00:00
Steffen Zimmermann
08218d71cd harmonize copy ctor and asignment op for etl::delegate (#465)
etl::delegate has a user-written copy constructor and a defaulted assignment
operator. The copy constructor does the same as a defaulted copy constructor,
therefore there is no need to add a user-written copy constructor.

The combination of user-written copy constructor and defaulted assignment
operator causes a warning in Coverity, a static code analyzer:

copy_without_assign: Class etl::delegate<void ()> has a user-written copy constructor etl::delegate<void ()>::delegate(etl::delegate<void ()> const &) but no corresponding user-written assignment operator.

This commit replaces the user-written copy constructor with a defaulted copy
constructor, which does the same.
2021-11-18 12:26:15 +00:00
John Wellbelove
5baa1af862 Make functions for containers 2021-11-18 12:26:15 +00:00
John Wellbelove
52586af2de Latest implementations 2021-11-18 12:26:15 +00:00
John Wellbelove
8fc7e0208a Added 'make' functions to construct containers
Added tests for 'make' and 'template deduction'
2021-11-18 12:26:13 +00:00
John Wellbelove
d93834ed83 constexpr for enum_type 2021-11-18 12:25:31 +00:00
John Wellbelove
58013e8257 changed iterator parameters to const_iterator 2021-11-17 17:59:57 +00:00
Steffen Zimmermann
d05bf1b4fd
let map/multimap/set/multiset return iterator on erase (#463)
Beginning with C++11, erase(iterator) and erase(const_iterator) returns
an iterator following the removed element.
2021-11-15 10:26:23 +00:00
John Wellbelove
0acd537a7e Updates 2021-11-15 09:37:22 +00:00
John Wellbelove
d4a22293c7 Added missing includes 2021-11-15 09:37:21 +00:00
John Wellbelove
8f02e90735 Experimental automatic builtins for algorithms 2021-11-15 09:37:21 +00:00
John Wellbelove
e296bd24f7 Make functions for containers 2021-11-15 09:32:50 +00:00
John Wellbelove
d03e6f5587 Latest implementations 2021-11-15 09:32:12 +00:00
John Wellbelove
84974acbfa Added 'make' functions to construct containers
Added tests for 'make' and 'template deduction'
2021-11-15 09:32:11 +00:00
John Wellbelove
bb72ded2e2 constexpr for enum_type 2021-11-15 09:31:30 +00:00
Jeremy Overesch
beadf9e898 Remove unnecessary casts that causes warnings. (#461) 2021-11-15 09:31:30 +00:00
John Wellbelove
29d711003f Added non-const string pointer overload 2021-11-15 09:31:30 +00:00
John Wellbelove
f459c3e190 First experiments 2021-11-15 09:31:30 +00:00
Jeremy Overesch
331e44b0ac Change != to < in ipool to get rid of erroneous clang-tidy nullptr dereference warning (#457) 2021-11-15 09:31:30 +00:00
Steffen Zimmermann
c412277bb9 add ifdef guard for msvc pragma (#455)
There was a msvc specific pragma to disable a warning which causes compiler warnings for non-msvc compilers.
Additionally added a push/pop paradigm to restore the original warning state correctly.
2021-11-15 09:31:29 +00:00
mhx
fccebd4724 Fix constexpr accepts() implementation to be C++11 compliant (#452)
In C++11, `constexpr` functions must not contain compound statements.
This change makes the implementation of `message_packet::accepts` use
a single conjunction instead of a `switch` statement.

See https://gcc.godbolt.org/z/zKbsx3nY5.

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2021-11-15 09:31:29 +00:00
mhx
0759d3f2ee Fix constexpr accepts() implementation to be C++11 compliant (#451)
In C++11, `constexpr` functions must not contain compound statements.
This change makes the implementation of `message_packet::accepts` use
a single conjunction instead of a `switch` statement.

See https://gcc.godbolt.org/z/zKbsx3nY5.
2021-11-15 09:31:29 +00:00
John Wellbelove
36bb393d7a Fix compiler warnings 2021-11-15 09:31:29 +00:00
Jeremy Overesch
c70db16a20
Remove unnecessary casts that causes warnings. (#461) 2021-11-10 17:31:31 +00:00
John Wellbelove
1b7a59be92 Added non-const string pointer overload 2021-11-06 16:45:06 +00:00
Jeremy Overesch
2c42e9f91b Change != to < in ipool to get rid of erroneous clang-tidy nullptr dereference warning (#457) 2021-11-04 12:15:54 +01:00
John Wellbelove
dd77b4ec70 First experiments 2021-11-04 12:15:14 +01:00
Steffen Zimmermann
4068482bd5
add ifdef guard for msvc pragma (#455)
There was a msvc specific pragma to disable a warning which causes compiler warnings for non-msvc compilers.
Additionally added a push/pop paradigm to restore the original warning state correctly.
2021-10-29 12:16:26 +01:00
John Wellbelove
9c8bf85e8d Merge branch 'hotfix/fix-cpp11-pedantic-constexpr' into development 2021-10-27 10:43:49 +01:00
John Wellbelove
946b48cbf1 Merge branch 'hotfix/#454-fix-compiler-error-msvc-16' into development 2021-10-27 09:48:13 +01:00
John Wellbelove
ea11ee8818 Fix compiler warnings 2021-10-27 09:47:52 +01:00
John Wellbelove
e6dd894896 Experimental automatic builtins for algorithms 2021-10-26 17:27:05 +01:00
John Wellbelove
b292e58ee4 Experimental automatic builtins for algorithms 2021-10-25 14:01:07 +01:00
mhx
b4c4d8ac4a
Fix constexpr accepts() implementation to be C++11 compliant (#452)
In C++11, `constexpr` functions must not contain compound statements.
This change makes the implementation of `message_packet::accepts` use
a single conjunction instead of a `switch` statement.

See https://gcc.godbolt.org/z/zKbsx3nY5.

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2021-10-25 13:46:00 +01:00
John Wellbelove
76f2a97d87 Experimental automatic builtins for algorithms 2021-10-25 09:56:40 +01:00
mhx
efb9c04a45
Fix constexpr accepts() implementation to be C++11 compliant (#451)
In C++11, `constexpr` functions must not contain compound statements.
This change makes the implementation of `message_packet::accepts` use
a single conjunction instead of a `switch` statement.

See https://gcc.godbolt.org/z/zKbsx3nY5.
2021-10-22 19:11:47 +01:00
John Wellbelove
690044e7ff constexpr for etl::string_view 2021-10-21 09:31:49 +01:00
John Wellbelove
998322d02c Add available_bytes to byte_stream_reader & byte_stream_writer 2021-10-21 09:26:20 +01:00
John Wellbelove
7124b86b88 Merge branch 'hotfix/disable-begin-end-size-for-no-stl' into development 2021-10-20 13:35:08 +01:00
John Wellbelove
f3bf0dc7fe Disable etl::begin(), etl::end() and etl::size() for ETL_NO_STL 2021-10-20 13:34:44 +01:00
John Wellbelove
4bedc041d4 Various updates 2021-10-12 17:52:51 +01:00
John Wellbelove
9e6baeb758 Merge branch 'feature/updates-to-delegate' into development 2021-10-12 16:28:41 +01:00
John Wellbelove
fbda92f67f Replace constexpr with ETL_CONSTEXPR in etl::delegate 2021-10-12 15:57:41 +01:00
Sergey Skorokhod
0ca5f274e1
missed 'typename' keyword added (#445)
Co-authored-by: Sergey Skorokhod <s.skorokhod@1440.space>
2021-10-12 15:37:44 +01:00
John Wellbelove
6af5a0bbd2 Added missing explicit initialisation from in_place structures. 2021-10-12 14:56:01 +01:00
Steffen Zimmermann
bc095c9993 fix PARAMETER_HIDDEN (#444)
found with Coverity static code analyzer:
declaration hides parameter "pbucket" (declared in line 1404)
2021-10-12 14:56:01 +01:00
John Wellbelove
dc34be793e Added missing explicit initialisation from in_place structures. 2021-10-12 14:51:39 +01:00
Steffen Zimmermann
7968c5c448
fix PARAMETER_HIDDEN (#444)
found with Coverity static code analyzer:
declaration hides parameter "pbucket" (declared in line 1404)
2021-10-12 10:16:55 +01:00
John Wellbelove
67067605a8 Updates to delegate 2021-10-11 12:32:17 +01:00
John Wellbelove
db46cc5dec Added set() member functions 2021-10-09 14:28:37 +01:00
John Wellbelove
0d612f1317 Added missing read() member functions in byte_stream_reader
Updated version numbers
2021-10-07 15:11:43 +01:00
John Wellbelove
2d64b77e4a Modified read_unchecked & write_unchecked
Added start/length read/write implementations
2021-10-05 14:24:46 +01:00
John Wellbelove
4e4c781e18 Updated versions 2021-10-04 20:00:45 +01:00
John Wellbelove
609c0c1ebc Merge branch 'feature/#430-add-peek-to-queue_spsc_atomic' into development
# Conflicts:
#	.gitignore
2021-10-04 17:30:55 +01:00
John Wellbelove
4b67f54f1f Added read_unchecked & write_unchecked 2021-10-04 16:59:42 +01:00
John Wellbelove
71f42a7563 Merge branch 'feature/#429-scatter-gather-span-based-class' into development
# Conflicts:
#	.gitignore
#	include/etl/byte_stream.h
#	test/vs2019/etl.vcxproj.filters
2021-10-03 20:26:20 +01:00
John Wellbelove
605655d58b Added multi_span iterator and tests 2021-10-03 20:19:15 +01:00
John Wellbelove
f35271e695 Added public access for base class for iterator 2021-10-03 20:18:51 +01:00
John Wellbelove
08e08b9165 Merge branch 'feature/#433-pool-ext-variant-pool-ext' into development
# Conflicts:
#	.gitignore
2021-10-03 16:10:28 +01:00
John Wellbelove
ec64141598 #438 void* reader writer API 2021-10-03 15:38:50 +01:00
John Wellbelove
aaa00ca610 Added pool_ext & generic_pool_ext 2021-10-03 11:50:40 +01:00
John Wellbelove
3f79e61f97 Add front() to locked queues 2021-10-02 14:27:23 +01:00
Daniel B
494059fd6b
Feature/pool ext variant pool ext (#433)
* added threads dependency to meson build because of pthread linkage problems (gcc version Debian 8.3.0-6)

* initial version of generic_pool_ext, pool_ext and variant_pool_ext (extended unit tests)

* format code

* fix test_call_if_and_not_valid_returning_void by moving SetupFixture into namespace (to ensure correct test setup)

Co-authored-by: Daniel B <daniel-brosche@users.noreply.github.com>
2021-10-01 18:46:52 +01:00
John Wellbelove
88f2ff8e63 Updated version numbers 2021-10-01 18:41:59 +01:00
John Wellbelove
ff3f62bc0b Fixed etl::cyclic_value for ARMCC v5 compatibility 2021-10-01 18:41:59 +01:00
John Wellbelove
c691991538 Removed warning from compilation 2021-10-01 18:41:35 +01:00
John Wellbelove
f987d2a287 Fixes to byte_stream_reader for const data 2021-10-01 18:41:35 +01:00
John Wellbelove
05f17e1d74 #428 byte_stream_reader can't be used to read a span of const data 2021-10-01 18:41:35 +01:00
John Wellbelove
579527a932 Fixes to byte_stream_reader for const data 2021-10-01 18:41:35 +01:00
fractalembedded
71c8544f35
Add peek to queue_spsc_atomic (#430) 2021-10-01 18:41:16 +01:00
John Wellbelove
817ae15c7a Work in progress 2021-10-01 14:10:14 +01:00
John Wellbelove
b47e58a8fe Merge branch 'hotfix/byte_stream_reader-with-const-char-data' into development 2021-09-29 18:50:01 +01:00
John Wellbelove
2fd15f9f68 Fixes to byte_stream_reader for const data 2021-09-29 18:49:27 +01:00
John Wellbelove
b9b7b9cd7a #431 CMSIS-RTOS2 support 2021-09-28 18:06:30 +01:00
John Wellbelove
a6d8a6d1ef Updated version numbers 2021-09-27 14:06:47 +01:00
John Wellbelove
1b0ddc540e Fixed etl::cyclic_value for ARMCC v5 compatibility 2021-09-27 13:30:59 +01:00
John Wellbelove
9f976d98b9 #428 byte_stream_reader can't be used to read a span of const data 2021-09-24 09:44:49 +01:00
John Wellbelove
49c9393537 Fixes to byte_stream_reader for const data 2021-09-23 11:49:16 +01:00
John Wellbelove
0754b3380e Updated versions 2021-09-21 11:09:34 +01:00
John Wellbelove
f2b4eef277 Temporarily disable multi_vector 2021-09-21 11:06:44 +01:00
John Wellbelove
acf0f06398 Merge branch 'hotfix/replace-std-size_t-with-size_t' into development 2021-09-21 10:20:17 +01:00
John Wellbelove
877f1a4d5d Replaced std::size_t with size_t 2021-09-21 10:19:52 +01:00
John Wellbelove
bdf1451655 Added multi_vector 2021-09-10 12:12:18 +01:00
John Wellbelove
5093189a7b Updated version numbers 2021-09-09 17:36:56 +01:00
John Wellbelove
c8cde6f605 Added successor handling for accepts
Added successor handling for pre-C++17 message router
2021-09-09 17:08:14 +01:00
John Wellbelove
7f6548e02b Added successor handling for accepts
Added successor handling for pre-C++17 message router
2021-09-09 16:07:51 +01:00
John Wellbelove
e6c13c75e7 Added result type 2021-09-05 17:39:56 +01:00
John Wellbelove
aaac4ba97c Updated version
Modified etl::result test
2021-09-05 14:59:17 +01:00
John Wellbelove
2cdfba4297 Added result type 2021-09-04 14:54:04 +01:00
John Wellbelove
81807b2fd2 Added result type 2021-09-04 13:34:02 +01:00
John Wellbelove
ee46d76548 Additional member functions 2021-09-02 16:07:09 +01:00
John Wellbelove
ca55664b67 Initial byte_stream code 2021-09-02 13:10:02 +01:00
John Wellbelove
3b112da068 Added call_if and call_or member functions. 2021-09-02 13:04:28 +01:00
John Wellbelove
dd19cb2e47 Working code including 64 bit 2021-09-02 13:04:27 +01:00
John Wellbelove
72468bace8 Pre-release code 2021-09-02 13:04:27 +01:00
John Wellbelove
07070085e8 Working code 2021-09-02 13:03:39 +01:00
John Wellbelove
d79b13bd52 Added missing #include for variant.
Updated version numbers
2021-09-02 13:03:38 +01:00
Benedek Kupper
a653a22dd9 to_string_helper: add string conversion helper for denominated integers (#408)
With default format it will only print the meaningful fractional digits.
If the format specifies the precision, it will print at least that many
fractional digits.

Signed-off-by: Benedek Kupper <benedek.kupper@streamunlimited.com>
2021-09-02 13:03:38 +01:00
John Wellbelove
442a76ec46 Fixed incomplete template specialisations in type_traits.h 2021-09-02 13:03:38 +01:00
CanastraRF
988db811c9 literal with suffix (#416) 2021-09-02 13:03:38 +01:00
John Wellbelove
c315efc623 Fix for etl::mutex::try_lock() for GCC 2021-09-02 13:03:37 +01:00
Dmitri Vorobyov
c497c5a4c7 fix try_lock in gcc mutex (#415) 2021-09-02 13:03:37 +01:00
John Wellbelove
46f4bb86d1 Successor handling for all derived message router types 2021-09-02 13:03:36 +01:00
John Wellbelove
17931057b5 Remove clang warning 2021-09-02 13:03:36 +01:00
John Wellbelove
3831d4fd68 Added successor call to receive() 2021-09-02 13:03:36 +01:00
John Wellbelove
6fb9357b7c Added cbegin() & cend() 2021-08-24 12:12:19 +01:00
John Wellbelove
5cbe4fb3e1 Read write span ranges 2021-08-22 12:58:32 +01:00
John Wellbelove
26c89064fc Additional read/write functions 2021-08-22 10:13:53 +01:00
John Wellbelove
133ff78330 Added templated etl::write & etl::read functions for byte stream 2021-08-21 09:54:31 +01:00
John Wellbelove
c3e040949a Span access is only for sizeof(T) == 1 2021-08-21 00:18:54 +01:00
John Wellbelove
42d451dc79 Expanded tests and updated make lists 2021-08-20 19:39:49 +01:00
John Wellbelove
ed74f8bc54 Initial byte_stream code 2021-08-20 10:22:44 +01:00
John Wellbelove
c1e4c5b670 Initial byte_stream code 2021-08-18 13:01:46 +01:00
John Wellbelove
fa4536eabf Merge branch 'development' 2021-08-13 20:45:49 +01:00
John Wellbelove
a10dfd433a Issue #413 Queue's pop_into copies rather than moves 2021-08-13 19:21:48 +01:00
John Wellbelove
c3e44778e6 Merge branch 'development'
# Conflicts:
#	support/Release notes.txt
2021-08-13 17:07:05 +01:00
John Wellbelove
417c3b9e77 Expanded compiled variants for scripts 2021-08-13 16:32:43 +01:00
John Wellbelove
21e114c252 Fixed etl::fsm C++03 template definition that was corrupted in 20.10.0
Fixed meson.build
2021-08-12 10:50:24 +01:00
John Wellbelove
6ff560a416 Merge branch 'feature/variadic-message-router' into development
# Conflicts:
#	.gitignore
#	include/etl/bip_buffer_spsc_atomic.h
#	include/etl/version.h
#	library.json
#	library.properties
#	support/Release notes.txt
#	test/etl_profile.h
#	test/runsanitychecks.sh
#	test/runtests.sh
#	test/vs2019/etl.vcxproj.filters
2021-08-11 15:50:43 +01:00
John Wellbelove
988cd95440 Added C++17 variadic versions of etl::message_router ans etl::fsm
Fixed meson.build
2021-08-11 15:48:17 +01:00
John Wellbelove
5904687e6d Variadic FSM 2021-08-10 20:25:27 +01:00
John Wellbelove
774384e316 Fixes after merge 2021-08-10 12:37:33 +01:00
John Wellbelove
27f5204032 Added 'Force C++03' macro 2021-08-10 11:31:14 +01:00
John Wellbelove
f413fd1a21 Fixes after merge 2021-08-10 11:20:00 +01:00
John Wellbelove
ca322551f3 Variadic message_packet 2021-08-10 10:49:32 +01:00
John Wellbelove
ecff863087 notify_observers() takes universal reference for C++11 and above 2021-08-10 10:49:11 +01:00
John Wellbelove
a7786e08af Updated type traits generator 2021-08-10 10:49:11 +01:00
John Wellbelove
79ffe63b1c Refactoring of type traits for GCC compatibility 2021-08-10 10:49:10 +01:00
John Wellbelove
8181cec767 Updated version numbers 2021-08-10 10:49:10 +01:00
Benedek Kupper
3363da4f91 Feature/bip buffer spsc atomic (#402 follow-up) (#404)
* bip_buffer_spsc_atomic: fix compiler failure

The previous commit changed the pointer being const (cannot change where
the pointer is pointing after construction) to the referred data
to be const (the buffer itself is not writeable), which causes compiler
issue with the tests.

Signed-off-by: Benedek Kupper <benedek.kupper@streamunlimited.com>

* bip_buffer_spsc_atomic: whitespace cleanup for consistency

Signed-off-by: Benedek Kupper <benedek.kupper@streamunlimited.com>

* bip_buffer_spsc_atomic: clear() destroys the unread data

Signed-off-by: Benedek Kupper <benedek.kupper@streamunlimited.com>

* bip_buffer_spsc_atomic: add destructor

Signed-off-by: Benedek Kupper <benedek.kupper@streamunlimited.com>
2021-08-10 10:38:23 +01:00
John Wellbelove
1789e4937d Changes before merging to development 2021-08-10 10:38:23 +01:00
Benedek Kupper
7a067ba816 introduce bip buffer spsc atomic (#402)
Based on the works of Andrea Lattuada and James Munns:
https://blog.systems.ethz.ch/blog/2019/the-design-and-implementation-of-a-lock-free-ring-buffer-with-contiguous-reservations.html
Whose design was inspired by Simon Cooke:
https://www.codeproject.com/Articles/3479/The-Bip-Buffer-The-Circular-Buffer-with-a-Twist

Signed-off-by: Benedek Kupper <benedek.kupper@streamunlimited.com>
2021-08-10 10:38:22 +01:00
John Wellbelove
d40a67776f notify_observers() takes universal reference for C++11 and above 2021-08-05 16:52:35 +01:00
John Wellbelove
c265e82bbe Updated type traits generator 2021-08-05 09:23:02 +01:00
John Wellbelove
b779696eb9 Refactoring of type traits for GCC compatibility 2021-08-04 18:47:42 +01:00
John Wellbelove
026a365f8e Updated version numbers 2021-08-04 10:27:22 +01:00
John Wellbelove
0d5f30b97e Merge branch 'master' into feature/bip-buffer-spsc-atomic
# Conflicts:
#	test/vs2019/etl.vcxproj.filters
2021-08-02 12:22:01 +01:00
John Wellbelove
86d1bd7890 etl::message_packet update 2021-08-01 20:01:30 +01:00
John Wellbelove
c868acaa9b Updated versions 2021-08-01 20:01:30 +01:00
John Wellbelove
a0c18c56af Changed std::forward to etl::forward 2021-08-01 20:01:29 +01:00
John Wellbelove
78239ec2ef Updated versions 2021-08-01 19:39:14 +01:00
John Wellbelove
c1f7edeee6 Changed std::forward to etl::forward 2021-08-01 19:37:03 +01:00
John Wellbelove
e92f93b57f Variadic message_packet 2021-07-31 10:38:21 +01:00
John Wellbelove
35ac4cb239 Variadic message_packet 2021-07-29 17:20:40 +01:00
John Wellbelove
b886ee381b Updated version numbers 2021-07-29 14:29:00 +01:00
John Wellbelove
734f14a8ec Changed variant files names 2021-07-29 14:29:00 +01:00
John Wellbelove
2c11956311 Updated version numbers 2021-07-29 14:27:41 +01:00
John Wellbelove
031b3e7eda Changed variant files names 2021-07-29 14:15:49 +01:00
John Wellbelove
fd89f51621 Type traits refactor 2021-07-29 11:34:16 +01:00
John Wellbelove
1702a6e043 Type traits refactor 2021-07-27 18:17:42 +01:00