113 Commits

Author SHA1 Message Date
John Wellbelove
1ca5bb012f
to string() does not handle floating point number with integer part exceeding max uint64 t (#1455)
* Added 'scientific' flag to basic_format_spec to allow forcing of scientific format for all floating point values.

* Forces floating point numbers that are larger than than the internal integral workspace types to be formatted in scientific format.

Also allows scientific format to be forced for all floating point output.
NAN and INF outputs now follow case settings, as does the new scientific exponent letter. 'e' or 'E'.

* treefmt changes

* Quick fixes

* Removed <format>

* Added tests for NAN and INF

Fixed result for -INF

* Added tests for upper and lower case scintific format.

* Changed incorrect stream header from <strstream> to <sstream>

* Update test_to_string.cpp

* Update test_to_u16string.cpp

* Update test_to_u32string.cpp

* Update test_to_u8string.cpp

* Update test_to_wstring.cpp

* clang-format updates

* clang-format updates

* Re-coded the precision calculation in add_floating_point_scientific to match add_floating_point_non_scientific

* Rename step 1

* Fix: rename docs/Messaging to docs/messaging

* Rename step 1

* Fix: rename docs/Messaging to docs/messaging

* Rename step 1

* Fix: rename docs/Messaging to docs/messaging

* Changed incorrect stream header from <strstream> to <sstream>

* Update test_to_string.cpp

* clang-format updates

# Conflicts:
#	test/test_to_string.cpp

* Remove old docs folder

* clang-format updates

# Conflicts:
#	test/test_to_string.cpp

* Re-commit missing file

---------

Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
2026-06-08 14:16:52 +01:00
John Wellbelove
4a88884b39
Issue/add hugo support for documentation (#1449)
* Add ranges

* Initial Hugo setup

* Work in progress

* Added selection for local or remote site

* Updated to 'light' theme

* Changed to using Hextra Hugo theme

* Changed to using Hextra Hugo theme

* Changed to Hextra Hugo theme

* Change to Hextra Hugo theme

* Updated Hugo setup.

* Updated Hugo setup.

# Conflicts:
#	docs/releases/_index.md

* Work in progress

* Added new fonts

Added new documentation

* Latest documentation updates

* Latest documentation updates

# Conflicts:
#	docs/containers/array.md
#	docs/containers/array_view.md
#	docs/containers/array_wrapper.md
#	docs/containers/bip_buffer_spsc_atomic.md
#	docs/containers/bitset.md
#	docs/containers/indirect_vector.md
#	docs/containers/vector.md
#	docs/getting-started/compilers.md

* Added bloom_filter markdown doc

* Added more documentation

Updated CSS for light and dark modes

* Fixed some menus

Added mode documentation files

* Updated CSS rules

Added badges to home page
Added uniqur_ptr + pool tutorial

* Fixed formatting on the home page markdown

Modified light amd dark code formatting

* Updated unique_ptr-with-pool

* Added container and shared message tutorials

* Updates to documentation

* Added const_multimap

* Updated source-formatting.md

* Added initial raw text files form Web site editor

* Innore coverage build directory

* Exported raw text documentation files from the web site editor

* Hugo updates

* Added Hugo intalation and markdown descriptions

* More addition to the documentation

* Added closure.md and updates to delegate.md

* Added format.md

* Added documentation for etl::delegate_observable, etl::function, Base64 codec

* Added io_port documentation

* Added basic_format_spec

* Added documentation for string_stream and string utilities.

* Added more documentation

Updated the documentation CSS

* Added documentation for clocks, day, duration

* Added more documentation for chrono classes

Updated callouts

* More chrono documentation

* Completed chrono documentation

* Maths functions documentation

* Completed maths documentation

* Completed maths documentation

* Completed maths documentation

* Completed maths documentation

* Added multiple documentation files

* Added iterator.md

* Added debug_count.md and versions.md

* Added debug_count.md and versions.md

* Added more documentation

* More documentation

* Added some design pattern documentation

Modified some of the layout files
Modified the About documentation

* Converted more documentation pages

Modified the site CSS

* Added more documentation

Moced some documentation files to new directories

* Added more documentation

Tweaks to CSS

* Added callback_timer_deferred_locked documentation

* Added callback_timer_locked documentation

* More documentation updates

* More documentation updates

* More documentation updates

* New documentation files.

Harmonised file name format

* New documentation files.

* Multiple document updates

* Multiple document updates

* Final conversion of web pages

* Updates before PR

* Updates before PR

* Updates before PR

# Conflicts:
#	docs/blog/_index.md

* Final pre PR updates

* Updates to message framework documentation

* Renamed directory

* Fix spelling

* Added author and date to blog files

Moved documentation files merged from development

* Fixed 'Description' typo

* Fix typos

# Conflicts:
#	docs/IO/io_port.md
#	docs/containers/sets/const-multiset.md
#	docs/containers/sets/const-set.md
#	docs/maths/correlation.md
#	docs/maths/gamma.md

* Renamed two files to lower case

* Minor renaming

* Added author and date

* Updated callout on bresenham_line.md

Added support for showing the ETL version on the documentation first page, by copying the version.txt file as a hugo asset.
Updated the Python 'update_release.py' to copy 'version.txt'

* Replace space in filename with hyphen.

Added more information to hugo-commands.md

* Replace space in filename with hyphen.

Added more information to hugo-commands.md

# Conflicts:
#	docs/getting-started/view-the-docs-locally/hugo-commands.md

* Added a link to pseudo_moving_average.md

* Updated title pages for groups

* Fixed missing 404 for non-existent pages

* Fixed coordinate variable names in the 'Calculating the intersection' example

---------

Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.co.uk>
2026-06-06 13:12:44 +01:00
John Wellbelove
ee04aa76c5 VS2022 project update 2026-04-05 14:03:32 +01:00
John Wellbelove
9b394b8677 Added certain Hugo files and diectories to the Git ignore file 2026-04-01 17:34:15 +01:00
John Wellbelove
520b4a9f46 Removed redundant semicolon from TEST_SUITE block 2025-12-22 10:04:07 +00:00
John Wellbelove
e88a74362b Modified to use new ETL_ASSERTs 2025-09-22 10:41:50 +01:00
John Wellbelove
119d381570 Fixed compilation issues for const containers unit tests 2025-09-04 10:10:52 +01:00
John Wellbelove
3837e36d71 Fixes to GCC -O2 errors 2025-09-02 13:51:45 +01:00
John Wellbelove
450948933f Added example of the use of etl::unique_ptr with etl::pool 2025-08-18 14:20:45 +01:00
John Wellbelove
64eb9742f0 Added const_map_ext and const_multimap_ext 2025-06-25 14:47:47 +01:00
John Wellbelove
933da4dcb4 Added C++23 Preview configuration 2025-06-06 18:18:16 +01:00
John Wellbelove
fedf429d02 Merge branch 'development' into feature/add-time-date-classes
# Conflicts:
#	.gitignore
#	include/etl/platform.h
#	include/etl/ratio.h
#	test/CMakeLists.txt
#	test/test_ratio.cpp
#	test/vs2022/etl.vcxproj
#	test/vs2022/etl.vcxproj.filters
2025-04-19 12:30:36 +01:00
John Wellbelove
bc158cbcbc Updates to chrono classes 2025-04-18 10:50:48 +01:00
John Wellbelove
baf12b1fcb Changed etl::message_packet to not require virtual messages 2025-02-17 10:42:25 +00:00
John Wellbelove
5f6384f96b Ignore Clang output 2025-02-11 11:42:29 +00:00
John Wellbelove
574da35b10 Attempt to fix Github CI errors 2025-02-03 15:03:28 +00:00
John Wellbelove
98c35f7f3e Updates to CI scripts 2025-02-01 18:27:05 +00:00
John Wellbelove
91a345bb17 Added experimental assert function handler 2024-12-25 17:42:06 +00:00
John Wellbelove
e422be6464 Removed using directive in derived message router classes. 2024-11-29 18:53:44 +00:00
John Wellbelove
ae31d581e2 Work in progress 2024-09-07 21:14:46 +01:00
John Wellbelove
f77d91d544 Updated syntax checks 2024-08-21 18:48:56 +01:00
John Wellbelove
833afdbd20 Added optimised and sanitiser build option to Visual Studio project 2024-03-11 18:13:06 +00:00
John Wellbelove
7e31561363 Fix issue of release of an object on empty an pool 2023-08-25 10:32:25 +01:00
John Wellbelove
45fb06af3f Changes require for non-virtual messages 2023-08-18 20:51:36 +01:00
John Wellbelove
8b5ff06e44 Resolve all C++ -O2 warnings 2023-08-06 23:39:11 +01:00
John Wellbelove
3510fd61a9 Updated intrusive links
Refactored intrusive_forward_list so that links report status consistantly
2023-07-04 11:45:10 +01:00
John Wellbelove
ed589c91c6 Added etl::is_forward_link, etl::is_bidirectional_link and etl::is_tree_link to intrusive links.
Added Constructors, access and status member functions to intrusive links.
2023-07-04 11:45:10 +01:00
John Wellbelove
177299977d Refactored visitor and variant to allow const variants and fix passing references to visitors 2023-07-04 11:41:00 +01:00
John Wellbelove
f4b8fd73c6 Updated Github actions yml files 2023-05-08 17:19:01 +01:00
John Wellbelove
6b7f6268a3 Updated Github actions yml files 2023-05-08 11:47:49 +01:00
John Wellbelove
3aa4a8af03 Sanity check CI test 2023-05-07 10:20:26 +01:00
John Wellbelove
aa1d7f0f7f Conversion of static to C++14 compatinility 2023-04-27 09:28:37 +01:00
John Wellbelove
8eabe5fb26 Fix test array sizes
C++14 compiler compatibility

Updated test run scripts

Changed some ETL_ASSERT macros to ETL_ASSERT_OR_RETURN

Changed unit test macros for C++20 compaibility

Updated test run scripts

Updated CMake files to allow C++ standard selection

Replaced ETL_ASSERT_AND_RETURN with ETL_ASSERT_OR_RETURN

Updated C++14 & C++20 unit test compatibility

Changed native char8_t check

Added optional optimisation argument to bash script
2023-03-25 12:16:59 +00:00
John Wellbelove
bb3faea614 Merge branch 'development' into feature/c++14-tests
# Conflicts:
#	.gitignore
#	test/vs2019/etl.vcxproj
2023-03-15 12:49:11 +00:00
John Wellbelove
574e041485 #675 Compilation error in optional.h line 405
Changes for compatibility with C++20

Restore C++17 unit test compatibility
2023-03-15 10:28:55 +00:00
John Wellbelove
405bdd8b8c Convert the Visual Studio project to VS2022 2023-03-07 20:24:01 +00:00
John Wellbelove
7bfa2d9429 Merge branch 'development' into hotfix/#649-intrusive_list-array-bounds-test-failure
# Conflicts:
#	include/etl/intrusive_forward_list.h
#	include/etl/intrusive_list.h
#	include/etl/optional.h
#	test/test_optional.cpp
#	test/vs2019/etl.vcxproj.filters
2023-02-28 19:31:33 +00:00
John Wellbelove
8ddf0935d3 Array bounds and maybe-uninitialized warning fixes 2023-02-28 18:33:49 +00:00
John Wellbelove
f4dd3c3363 Work in progress 2023-01-25 19:51:19 +00:00
John Wellbelove
74d5969d3c Updated ignore file 2022-10-19 12:22:52 +01:00
John Wellbelove
a5c57521cb Fix small issues
Move tests to test_iterator
2022-10-19 12:22:51 +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
John Wellbelove
18ab645763 Work-In-Progress 2022-10-15 14:28:58 +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
d0da03b1b7 Updated gitignore 2022-08-04 17:07:43 +01:00
John Wellbelove
c9c928b8bb Merge branch 'master' of https://github.com/ETLCPP/etl 2022-07-24 19:10:44 +01:00
John Wellbelove
bf7c38b9a5 Updated gitignore 2022-07-24 19:10:35 +01:00
John Wellbelove
c8a3f0705f Merge branch 'development'
# Conflicts:
#	.gitignore
2022-07-24 19:00:54 +01:00
John Wellbelove
eb3ae1e9c3 Updated gitignore 2022-07-24 17:58:37 +01:00
John Wellbelove
df01759227 Optimised container move for external buffers 2022-07-24 13:01:07 +01:00