4516 Commits

Author SHA1 Message Date
John Wellbelove
edb6c87a2d Added select1st and select2nd 2022-10-19 12:20:42 +01:00
Eric Vantillard
b5182dd83e Feature/add pair functors (#610)
* 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.

* 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.

* Fix 'maybe-uninitialized' g++ error on macos (#600)

* Add documentation to the pair class

* Add test directory to the EXAMPLE_PATH

* Update .gitignore

- Remove duplicate entries
- Add doxygen output directories

* Add Select1st and Select2nd functors

* Merge select1st and select2nd into utility.h

Co-authored-by: David Hebbeker <dhebbeker@users.noreply.github.com>
2022-10-19 12:20:42 +01:00
Ross Younger
92d8739db4 Fix bare assert in reference_counted_object.h (#613)
Signed-off-by: Ross Younger <crazyscot@gmail.com>

Signed-off-by: Ross Younger <crazyscot@gmail.com>
2022-10-19 12:20:42 +01:00
John Wellbelove
daa42f2d4b Endianness for IAR compiler 2022-10-19 12:20:42 +01:00
David Hebbeker
804a401a6e 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-10-19 12:20:42 +01:00
Eric Vantillard
6ac2087368 Fix 'maybe-uninitialized' g++ error on macos (#600) 2022-10-19 12:20:42 +01:00
David Hebbeker
a4a096a54d 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-10-19 12:20:42 +01:00
David Hebbeker
aa2d249fdc 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-10-19 12:20:42 +01:00
jeremyerdmann
93d9df9c9b
Automatically set ETL_HAS_ATOMIC if __STDC_NO_ATOMICS__ defined by compiler. (#624)
Reference: https://en.cppreference.com/w/c/atomic

Co-authored-by: Jeremy Erdmann <jeremy.erdmann@millerwelds.com>
2022-10-18 18:30:48 +01:00
John Wellbelove
18ab645763 Work-In-Progress 2022-10-15 14:28:58 +01:00
John Wellbelove
2933fd54d2 Tidy up 2022-10-14 19:17:23 +01:00
John Wellbelove
af62d22b5d Merge branch 'development' of https://github.com/ETLCPP/etl into development 2022-10-14 12:00:26 +01:00
John Wellbelove
aeb3dd4832 Merge branch 'feature/#596-helper-functions-to-convert-strings-to-numeric-values' of https://github.com/ETLCPP/etl into feature/#596-helper-functions-to-convert-strings-to-numeric-values
# Conflicts:
#	include/etl/to_arithmetic.h
2022-10-13 19:44:15 +01:00
John Wellbelove
49e8c3fc4d Work-In-Progress
Integral functions
2022-10-13 19:43:45 +01:00
John Wellbelove
f6b00678ce Work-In-Progress
Integral functions
2022-10-13 19:42:49 +01:00
Joris Putcuyps
51d9a562a6
No need to initialize the C-compiler, small speed improvement (#621) 2022-10-13 10:40:53 +01:00
John Wellbelove
bb7df497ca Work-In-Progress 2022-10-11 06:56:58 +01:00
John Wellbelove
c1d73a7a93
Update README.md 2022-10-10 19:10:20 +01:00
John Wellbelove
538ad21993
Update README.md 2022-10-10 19:04:42 +01:00
John Wellbelove
f03143e9b3 Work-In-Progress 2022-10-08 15:22:28 +01:00
John Wellbelove
b48e75b737 Work-In-Progress 2022-10-08 15:00:09 +01:00
John Wellbelove
d9fa85c9a2 Work-In-Progress 2022-10-07 13:39:04 +01:00
John Wellbelove
8cd0546e36 Merge branch 'development' into feature/#596-helper-functions-to-convert-strings-to-numeric-values
# Conflicts:
#	include/etl/file_error_numbers.h
2022-10-07 12:52:58 +01:00
John Wellbelove
3d99fa27bb Updated ignore 2022-10-07 10:42:25 +01:00
John Wellbelove
de15d0e2fa Changed scaling template parameter 2022-10-06 23:48:53 +01:00
John Wellbelove
715d9b3a88 Updated VS2019 files 2022-10-06 19:04:48 +01:00
John Wellbelove
28b4a56062 Copied test file list from CMakeLists.txt 2022-10-06 18:59:48 +01:00
Eric Vantillard
ad6aa9b40f
Update test sources in meson build (#604)
- Update list of tests according to CMakeLists.txt content.
- Update compiler args :
	- Add same arguments as in CMakeLists.txt.
	- Remove non-vitual-dtor warnings (code need to be fixed before enabling this warning).
	- Enable sanatizer.
- Add unittest-cpp subproject as a wrap dependency.
- Add `meson test`target to start the `etl_unit_tests` program.
2022-10-06 15:00:21 +01:00
John Wellbelove
a84903e184 VS2022 sln 2022-10-06 14:55:22 +01:00
John Wellbelove
bc54f50d90 Updated ignore file 2022-10-06 14:53:56 +01:00
John Wellbelove
a62920adec Remove redundant functions 2022-10-06 14:51:20 +01:00
John Wellbelove
34f818d649 Merge branch 'feature/#616-Provide-cmake-library-for-UnitTest++' into development 2022-10-06 10:47:54 +01:00
Chiraffollo
29792fb1f3
fix bug in find_next of (new) bitset class (#618) 2022-10-05 12:20:36 +01:00
Joris Putcuyps
c8fb2b4a43
Provide cmake library for UnitTest++. (#616)
* Provide cmake library for UnitTest++.
Prefer cmake target_* commands.

* Replace wrong cmake link options with compile

* We need the sanitize flags also in linker
2022-10-04 22:31:07 +01:00
John Wellbelove
ed91987454 Fix small issues
Move tests to test_iterator
2022-10-04 18:42:14 +01:00
Eric Vantillard
af98e175e2
Feature/add back insert iterator (#603)
* Add back_inserter implementation

- Mainly a copy of the STL implementation found in LLVM.
- Add test_back_insert_iterator unit test.

* Add documentation and use ETL_OR_STD macro

* Add MIT License in header

* Move back_insert_iterator into iterator.h

* Remove unused code

* Strictly follow the C++ STL naming

https://en.cppreference.com/w/cpp/iterator/back_insert_iterator
Strictly following the C++ STL would have container_ be container.

* Make the check for C++11 clearer

* Run the unit test only for C++11

* Add front_insert_iterator

- Make back_insert_iterator available to C++03
- Add ETL_CONSTEXPR17,ETL_NODISCARD and ETL_USING_CPP11
- Replace std:move usage by etl::move
- Update doc

* Use explicit namespace for adressof() and move().
2022-10-04 12:03:15 +01:00
John Wellbelove
eef3605297 Merge branch 'hotfix/#606-fix-non-usages-of-key-equal-function' into development 2022-10-04 11:58:23 +01:00
Jesse Li
52b7187324
[bug] Special case check for hashing -0.0 (#605)
* Special case check for hashing 0 floating point numbers

* Update test_hash.cpp

Co-authored-by: Jesse <jli@planarmotor.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2022-10-03 19:17:00 +01:00
Jesse Li
5dee901894
Fix non-usage of key equal function (#606)
Co-authored-by: Jesse <jli@planarmotor.com>
2022-10-03 19:08:08 +01:00
John Wellbelove
5faf7b0dc1 Merge branch 'hotfix/#614-unaligned-types-match-the-signedness-of-the-storage-type-with-the-template-type' into development 2022-10-03 19:05:13 +01:00
John Wellbelove
a63408e66a Merge branch 'hotfix/#614-unaligned-types-match-the-signedness-of-the-storage-type-with-the-template-type' of https://github.com/ETLCPP/etl into hotfix/#614-unaligned-types-match-the-signedness-of-the-storage-type-with-the-template-type
# Conflicts:
#	include/etl/unaligned_type.h
2022-10-03 16:52:36 +01:00
John Wellbelove
644c950016 Storage type to unsigned char 2022-10-03 16:46:05 +01:00
benedekkupper
34cbc538fc
unaligned types: use unsigned storage type (#614)
This saves one static_cast when copying from storage to value,
and prevents unintended sign-extension when extracting raw data.
2022-10-03 16:43:23 +01:00
John Wellbelove
e17348b94d Work-In-Progress 2022-10-03 11:56:57 +01:00
John Wellbelove
2f31267ea2 char to unsigned char storage 2022-10-03 01:00:51 +01:00
John Wellbelove
9c04431bea Merge branch 'feature/#610-add-pair-functors' into development 2022-10-02 13:01:11 +01:00
John Wellbelove
74b3cad1a4 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2022-10-02 12:56:35 +01:00
John Wellbelove
7dd3e3bcbb Added select1st and select2nd 2022-10-02 12:55:55 +01:00
Eric Vantillard
8b52ad62dd
Feature/add pair functors (#610)
* 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.

* 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.

* Fix 'maybe-uninitialized' g++ error on macos (#600)

* Add documentation to the pair class

* Add test directory to the EXAMPLE_PATH

* Update .gitignore

- Remove duplicate entries
- Add doxygen output directories

* Add Select1st and Select2nd functors

* Merge select1st and select2nd into utility.h

Co-authored-by: David Hebbeker <dhebbeker@users.noreply.github.com>
2022-10-01 11:40:18 +01:00
John Wellbelove
70b475491a Work-In-Progress
Alternate decoding
2022-10-01 11:37:32 +01:00