1475 Commits

Author SHA1 Message Date
John Wellbelove
db3af4f14f Work-In-Progress
Function parameter radix implementation
2022-09-30 11:47:13 +01:00
John Wellbelove
5d393f0ef4 Added etl::npos
Added specialisation of etl::optional for POD
2022-09-30 11:47:13 +01:00
John Wellbelove
ade73ed78d Refactored to_arithmetic 2022-09-30 11:47:13 +01:00
John Wellbelove
741a002942 First implementation ideas 2022-09-30 11:47:13 +01:00
John Wellbelove
c8471e5eeb Endianness for IAR compiler 2022-09-30 11:46:13 +01:00
David Hebbeker
d1e094476e
Automatically detect native endianness for IAR compiler platform. (#612)
* Auto detect native endianness for IAR compiler platform.

References:

- [IAR C/C++ Development Guide Compiling and Linking for Arm Limited’s **Arm**® Cores](https://wwwfiles.iar.com/arm/webic/doc/ewarm_developmentguide.enu.pdf)
- [IAR C/C++ Compiler User Guide for Microchip Technology’s **AVR** Microcontroller Family](https://wwwfiles.iar.com/AVR/webic/doc/EWAVR_CompilerGuide.pdf)

* Fix spelling mistake.
2022-09-29 08:20:54 +01:00
David Hebbeker
24ebe3efe8
Replace ETL_COMPILER_ICCAVR by ETL_COMPILER_IAR. (#602)
The current definition mechanism for ETL_COMPILER_ICCAVR does not work. Both IAR compilers, for ARM and AVR define `__IAR_SYSTEMS_ICC__`. Thus `ETL_COMPILER_TYPE_DETECTED` will be defined in line before ETL_COMPILER_ICCAVR is defined. This switch will never be entered.

Currently I see no reason for differentiating both compilers (`__ICCARM__` and `__ICCAVR__`). The condition for the IAR compiler platform (`__IAR_SYSTEMS_ICC__`) is sufficient (combined with <C++11 detection).

At the moment ETL_COMPILER_ICCAVR is used as a switch condition for using `#pragma push_macro`. But actually IAR ARM and IAR AVR have no such macro defined. ETL_COMPILER_IAR is defined for both compilers. Thus the switch condition is replaced with ETL_COMPILER_IAR.
2022-09-14 11:29:37 +01:00
David Hebbeker
d31f787585
Move __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS before #include <stdint.h>. (#601)
Macros must be defined before first include of stdint.h. Else they have no effect.
2022-09-14 11:12:47 +01:00
John Wellbelove
e99a1a5845 Attempt to fix clang CI error 2022-09-11 19:50:09 +01:00
John Wellbelove
f8d9eb0f46 Attempt to fix clang CI error 2022-09-11 18:02:27 +01:00
John Wellbelove
0bfe4baa63 Attempt to fix clang CI error 2022-09-11 16:04:15 +01:00
John Wellbelove
23be4cfd02 Attempt to fix clang CI error 2022-09-11 15:41:51 +01:00
John Wellbelove
38458a71e3 Attempt to fix clang CI error 2022-09-11 15:29:51 +01:00
John Wellbelove
bc48b8ac4e Deleted copy constructors for etl::circular_buffer_ext, etl_indirect_vector and etl::vector to eliminate dangling pointers. 2022-09-11 12:04:28 +01:00
John Wellbelove
f952057508 Added ETL_ENUM_CLASS and ETL_ENUM_CLASS_TYPE macros 2022-09-11 00:59:34 +01:00
John Wellbelove
c953100dd0 Improved etl::span/std::span compatibility 2022-09-11 00:58:22 +01:00
John Wellbelove
7b733f73ad Minor updates to bitset
Added bitset_ext tests to cmake
2022-09-11 00:57:00 +01:00
John Wellbelove
e78e7b474a Added etl:lsb_mask, etl::make_lsb_mask, etl::msb_mask and etl::make_msb_mask 2022-09-11 00:55:55 +01:00
John Wellbelove
1e7b5887f5 Minor changes 2022-09-09 19:06:23 +01:00
John Wellbelove
435cec705f Modified order of standard includes 2022-09-09 14:20:24 +01:00
John Wellbelove
737b0bf6f7 #591 Automatically define __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS 2022-09-08 23:00:48 +01:00
John Wellbelove
2d0d744c74 Updated etl::bitset and added etl::bitset_ext 2022-09-08 20:11:20 +01:00
John Wellbelove
7949c09b93 Merge branches 'development' and 'development' of https://github.com/ETLCPP/etl into development 2022-09-08 20:09:04 +01:00
David Hebbeker
1e592b5921
Do not use min/max workaround for ICCAVR. (#595)
IAR C/C++ Compiler V6.70.1.929 for Atmel AVR does not support push_macro and does neither define macros for min or max.
2022-09-08 16:29:02 +01:00
John Wellbelove
d2e8e0aa71 #594 Use a different workaround for problems with IARCC. 2022-09-07 12:38:30 +01:00
David Hebbeker
63e31068b7
Apply workaround for __has_include(<...>) and ICCAVR. (#593)
ICCAVR: IAR C/C++ Compiler V6.70.1.929 for Atmel AVR

There seems to be an issue with the ICCAVR compiler and `__has_include(<...>)` syntax:

```
Error[Pe008]: missing closing quote etl\include\etl\placement_new.h 48
Tool Internal Error:
Internal Error: [Front end]: assertion failed at: "..\..\Translator\compiler_core\src\parser\edg\literals.c", line 1159
Internal Error: [Front end]: assertion failed at: "..\..\Translator\compiler_core\src\parser\edg\literals.c", line 1159 etl\include\etl\placement_new.h 48
Error while running C/C++ Compiler
```

Which is weird, as I wonder why `__has_include` is defined in first place. The compiler is supposed to support some dialect of C++98.

Anyhow, `__has_include()` seems to work in general with ICCAVR. And with this change the code compiles well.
2022-09-07 11:15:59 +01:00
John Wellbelove
4b0047a3bb Updated release information 2022-09-07 11:13:04 +01:00
John Wellbelove
e8cc472ac9 Finished etl::circular_iterator an circular extensions to etl::span 2022-09-06 19:43:01 +01:00
John Wellbelove
dc0ab72e09 circular_span first draft 2022-09-06 10:59:49 +01:00
John Wellbelove
25adb3c68c Almost finalised circular_iterator and tests 2022-09-04 23:44:51 +01:00
John Wellbelove
2c0f56841e Almost finalised circular_iterator and tests 2022-09-04 21:05:22 +01:00
John Wellbelove
13a1ce6f8e Merge branch 'feature/circular_iterator' of https://github.com/ETLCPP/etl into feature/circular_iterator 2022-09-03 13:24:46 +01:00
John Wellbelove
15fd907549 Merge branch 'hotfix/#582-unordered_set-equality-comparison-fails-when-hash-collisions-occur' into development 2022-09-03 11:57:11 +01:00
John Wellbelove
eceaa23f47 #584 unordered_set::const_iterator has incorrect value_type 2022-09-03 11:56:24 +01:00
John Wellbelove
7c5a6e49a1 Fixed unordered container equality tests to match STL 2022-09-02 20:40:17 +01:00
John Wellbelove
0f2b9bb019 Fix non-C++03 code syntax 2022-09-02 15:56:39 +01:00
John Wellbelove
c4b67a2708 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2022-09-02 15:04:23 +01:00
Ilya
818908fb6e
Add minmax_push.h/minmax_pop.h includes (#589) 2022-09-02 15:04:01 +01:00
John Wellbelove
b13442823a Merge branch 'hotfix/#585-etl-result-void-being-unusable-due-to-deleted-default-constructor' into development 2022-09-02 14:06:15 +01:00
John Wellbelove
245fbdeea9 Fixes for etl::result<void, TError> 2022-09-02 14:05:46 +01:00
John Wellbelove
201c1fb918 Merge branch 'hotfix/#583-permit-non-default-constructable-hashes-and-key-equals-in-unordered_map' into development 2022-09-02 13:32:23 +01:00
John Wellbelove
4f5847e189 Updates for unordered maps and sets for an API that better matches the STL 2022-09-02 13:32:00 +01:00
Jesse Li
aab900f002
Permit non-default-constructable hashes and key-equals (#583)
Co-authored-by: Jesse <jli@planarmotor.com>
2022-09-01 19:41:09 +01:00
John Wellbelove
b00929ef09 Merge branch 'feature/#581-hash-functions-for-enum' into development 2022-09-01 19:26:35 +01:00
John Wellbelove
a48aa15b60 Formatting 2022-09-01 19:16:24 +01:00
Jesse Li
a38a8fc33c
#227 Hash function for enums (#581)
* #227 Hash function for enums

* Move enum hash definition to bottom, so gcc doesn't complain about it

* Explicitly specify etl hash

Co-authored-by: Jesse <jli@planarmotor.com>
2022-09-01 19:10:35 +01:00
John Wellbelove
f0862971c1 Merge branch 'hotfix/#585-etl-result-void-being-unusable-due-to-deleted-default-constructor' into development 2022-09-01 18:56:46 +01:00
jeremyerdmann
7d7b7633bd
Fixed IAR build warnings in message_packet (#587)
IAR was tripping up on the syntax, generating warnings.  This addresses that per the discussion in #586.

Co-authored-by: Jeremy Erdmann <jeremy.erdmann@millerwelds.com>
2022-09-01 18:52:34 +01:00
Eyal Abramovitch
927491c763
Fix etl::result<void> being unusable due to deleted default constructor (#585) 2022-08-31 12:43:56 +01:00
John Wellbelove
64fa058f6b Work in progress 2022-08-26 09:49:13 +01:00
John Wellbelove
5aa14f85aa Revert "Work in progress"
This reverts commit b3a77d6f83088a01969a3164373166d14ce36639.
2022-08-26 09:47:05 +01:00
John Wellbelove
b3a77d6f83 Work in progress 2022-08-26 09:40:54 +01:00
John Wellbelove
868329f9e4 Remove redundant include 2022-08-24 11:27:48 +01:00
John Wellbelove
d3d9dbdbcd #580 numeric_limits<char> redefinition for gnu c++20 2022-08-24 11:27:12 +01:00
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