When ETL_FORMAT_NO_FLOATING_POINT is defined, all floating-point formatting support (float, double, long double) is excluded from etl::format. This reduces code size on targets that do not require floating-point formatting.
Guarded sections:
- #include <cmath>
- float/double/long double in supported_format_types variant
- float/double/long double constructors in basic_format_arg
- format_floating_* functions and format_aligned_floating
- formatter<float>, formatter<double>, formatter<long double>
- Floating-point test cases in test_format.cpp
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fixed issue for both multiset and multimap
* Added std::is_sorted checks to all map/set tests
* Updated with coderabbit suggestions
---------
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
* manchester
* Added manchester code and test
* manchester
* Formatting and added missing file
* manchester
* Some functions can only be constexpr since C++14
* manchester
* Manchester decode and some refactoring
* manchester
* Added some missing typenames
* manchester
* constexpr void function not allowed in C++11
* manchester
* condition on static_assert tests
* manchester
* revert CMakeLists.txt
* Using ETL_STATIC_ASSERT
* Some cleanup
* manchester
* Added static_assert message
* manchester
* Added compile time tests
* manchester
* Added invert manchester
* Some refactoring
* manchester
* Disable test for now
* Move ETL_NODISCARD before static
* manchester
* Test for valid_span
* manchester
* Remove redundant (?) storage specifiers for template specializations. Storage specifier already given in base template
* manchester
* refactoring to get rid of specialized template functions in template class
* manchester
* cleanup
* manchester
* Added documentation comments
* Some refactoring
* manchester
* introducing namespace detail_manchester
* manchester
* Some refactoring
* Update tests
* manchester
* Some refactoring
* Removed possible undefined behavior by refactoring encode_span
* constexpr version of encode_span
* Static assertion for rare case where code doesn't work because CHAR_BIT is not the same as the number of bits in uint_least8_t
* manchester
* renamed valid to is_valid
* manchester
* renamed is_valid_span to is_valid
* Using etl exceptions in ETL_ASSERT
* manchester
* Removed _fast functions
* merged encode_in_place with encode and decode_in_place with decode
* removed _span to create normal overloads of encode and decode for span
* Some renaming and minor refactoring
* manchester
* Fix build issues
* manchester
* Conditionally compile manchester_decoded
* Update test_manchester.cpp
Removed redundant semicolon
* #1258 Manchester coding
* Formatting
* consistency: hex literals with lower case 0x
* #1258 Manchester coding
* Moved copyright to top of file
* Make constexpr encode/decode span functions equal for little and big endian platforms
* #1258 Manchester coding
* Added missing include
* Added missing 8bit/64bit guards
* Fixed is_valid for big endian platforms
* #1258 Manchester coding
* private memcpy alias
* #1258 Manchester coding
* Review comments
* #1258 Manchester coding
* Cleanup
* Fix build error
---------
Co-authored-by: Timon Zijnge <timon.zijnge@imec.nl>
* Added compare_message_id
* Added new C++11 and up message routing code using a sorted type_list
* Renamed compare_message)id to compare_message_id_less
* Added documenation for compare_message_id_less
Added static asserts for message type template parameters
* Added optimisation for contiguous message IDs
Added more Doxygen documentation
* Added etl::type_list_all_of, etl::type_list_any_of, and etl::type_list_none_of
* Added etl::type_list_is_unique
* Added common definitions to all router types
* Added static_asserts to check message types
* Added etl::type_list to etl::nth_type
* Added missing 'typename' to type_list nth_type
* Added type_list_is_empty
* indentation fix
* Renamed type_list_prepend & type_list_append to type_list_push_front & type_list_push_back respectively
* Added tests for make_index_sequence & make_index_sequence_with_offset
* Add more features to etl::type_list (#1307)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Added etl::type_list to etl::observer
* Added etl::type_list to etl::nth_type
* Added missing 'typename' to type_list nth_type
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added type_list definitions for nth_type and observer
* Added etl::type_list to etl::variant
* Updated comments
* Addedetl::type~_list to message_router, observer, visitor
# Conflicts:
# include/etl/observer.h
# test/vs2022/etl.vcxproj.filters
* Added member type_list type to tuple
* Work in progress
* Copy changes from other source
* Removed unused tests
* Fix iter_swap namespace
* Add type_list functionality to etl::variant using etl::variant_from_type_list
* Add type_list functionality to etl::message_packet using etl::message_packet_from_type_list
* Add type_list functionality to etl::message_router using etl::message_router_from_type_list
* Add type_list functionality to etl::observer using etl::observer_from_type_list
* Add type_list functionality to etl::tuple using etl::tuple_from_type_list
* Allow etl::make_index_sequence to be created from an etl::type_list
* Add type_list functionality to etl::visitor using etl::visitor_from_type_list
* Fix iter_swap namespace
* Allow creation of a message_packet with no message types
* Allow creation of a message_router with no message types
* Updated VS2022 project files
* Added missing test files CMakeLists.txt
* Fix C++03 compatibility
Fixed unused aregument warnings
* Synced message_packet generator to updated code
* Synced message_router generator to updated code
* Synced message_router generator to updated code
# Conflicts:
# include/etl/generators/message_router_generator.h
# include/etl/message_router.h
* Fixed missing zero message specialisation for <= C++14
* Fixed missing zero message specialisation for <= C++14
* Fix year_month arithmetic and correct chrono API behavior (#1257)
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Restore default constructor behavior for chrono calender
* Suppress warnings from std in optimized builds (#1259)
When testing with ./run-tests.sh 23 3 10, some warnings from
std surfaced which resulted in build errors.
* Add template deduction guide for span from vector (#1264)
* Create span from vector deduction
* Use ivector for deduction. Add vector_ext to test
* Add vector pointer to test
* Finish tests
* Initialize pdata_ext and others
* Document how to implement platform specifics (#1262)
Some interfaces need to be implemented in every project
or platform using the ETL:
* etl_get_high_resolution_clock
* etl_get_system_clock
* etl_get_steady_clock
* etl_putchar
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix etl::as_bytes for etl::span<const T> (#1266)
A missing 'const' in the etl::as_bytes implementation was causing a
compile-time error when etl::as_bytes was called on a span of const
values.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove some UB in test_vector_non_trivial.cpp (#1268)
Some of the tests' UB are detectable by Gcc15 and thus give a compile error due to warnings-as-error flag.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Update C++26 deprecated constructs to ensure future standard compliance (#1267)
* Update C++26 deprecated constructs to ensure future standard compliance
I replaced std::is_trivial with a combination of std::is_trivially_default_constructible and std::is_trivially_copyable. Additionally, I added the required comma before the ellipsis in variadic functions to match updated language specifications.
* Some additional is_trivial related changes not found directly when compiling tests in C++26
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix return value of get_token_list (#1271)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix etl::tuple template signature error in pair assignment operator (#1265)
* Fix etl::tuple template signature error in pair assignment operator
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update etl::tuple to explicitly use etl::pair or std::pair in assignment operator
* Added tests for etl::tuple assignment from pair
---------
Co-authored-by: Bryton Flecker <bflecker@swe.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove advance() on static spans (#1281)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Remove advance() on static spans
Since the size of a static span is constant, we can't reasonably
advance() on it.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add missing includes (#1286)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add missing includes
Before this change, the includes needed to be done explicitly by
files using basic_string_stream.h, and be included first. This
was error prone, especially if includes are reordered (e.g. via
the currently defined clang-format rules).
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Move comparison operators of etl::expected to namespace etl (#1287)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Move comparison operators of etl::expected to namespace etl
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Make typed_storage constructor constexpr (#1291)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Make typed_storage constructor constexpr
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add basic_format_arg constructor for ibasic_string (#1288)
* Allow string as format arg
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added test string escaped
* Add temporary string test
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* QR Code for Github
* Added etl::visitor_from_type_list
* accepts(id) for empty router passes on to a sucessor
* Fixed incorrect comment from 'tuple' to 'message_router'
* PR review changes
* PR review changes
* Fixed internal constexptr flag in message_packet
* Fixed unused variable in unti test
* Added new type_list features
Added make_index_sequence_with_offset
* Renamed type_list_select_from_sequence to type_list_select_from_index_sequence
* Replaced type_list_size<TTypeList>::value with TTypeList::size internally for better clarity.
* Added etl::type_list_remove, etl::type_list_remove_if, etl::type_list_unique, etl::type_list_pop_front, etl::type_list_pop_back
* Add ref-qualifiers to basic_format_spec (#1292)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* feat: use ref-qualifiers for basic_format_spec
Converted the l-value methods to ref-qualified and also added r-value ref-qualified methods.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add support for size_t and unsigned long to etl::format (#1290)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add support for size_t and unsigned long to etl::format
* Document list of supported types in etl::supported_format_types
* Add further types and tests for etl::format
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Deduce underlying storage size when constructing string_ext from char[]. (#1269)
* Deduce underlying storage size when constructing string_ext from char[].
This removes the need for passing sizeof(storage) to the constructor.
* Add array constructors for the other string types.
- u16string_ext
- u32string_ext
- u8string_ext
- wstring_ext
* Add additional constructors to match existing API.
* Fix inconsistent test argument order.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Added etl::type_list_all_of, etl::type_list_any_of, and etl::type_list_none_of
* Added etl::type_list_is_unique
* Added type_list_is_empty
* indentation fix
* Fix merge error
* Renamed type_list_prepend & type_list_append to type_list_push_front & type_list_push_back respectively
* Added tests for make_index_sequence & make_index_sequence_with_offset
* Resolve coderabbit review issues
* Resolve coderabbit review issues
* Resolve coderabbit review issues
* Resolve coderabbit review issues
* Added etl::type_list_indices_of_type which create an etl::index_sequence of all of the indexes of a specified type in an etl::type_list
* Updated comments
* Resolve coderabbit review issues
Added index_sequence utility to support type_list utilities. Added additional index_sequence utilities for completeness
* Added etl::index_sequence_cat, etl::index_sequence_pop_front, etl::index_sequence_pop_back, etl::index_sequence_at
* Fix 'unused variable' error in index_sequence tests
---------
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.co.uk>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: Bo Rydberg <2945606+bolry@users.noreply.github.com>
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: Mike Bloom <91038685+mike919192@users.noreply.github.com>
Co-authored-by: taltenbach <92919739+taltenbach@users.noreply.github.com>
Co-authored-by: Bryton Flecker <fleckerbr@gmail.com>
Co-authored-by: Bryton Flecker <bflecker@swe.com>
Co-authored-by: Drew Rife <drew.rife95@gmail.com>
Co-authored-by: Marco Nilsson <marco@zyax.se>
* Moved O(1)/O(logN) index search test to get_dispatch_index_from_message_id
Updated message_router generator
* Fixed C++03 compatibilty
* Replaced is_base_of with is_message
* Missing 'return' in chrono example
* Fixed doxygen comments
* Check message inherits from etl::message<>
* Copilot & coderabbit review changes
Check for no duplicated message IDs
Added diagnostic disable
Make Message_Id_Start an etl::message_id_t type
* Synchronised message_router_generator.h
* Modified the "All message IDs must be unique" static_assert to directly use the index_sequence of message IDs
Added addition index_sequence utilities to support this change.
* Changed Router1 definition to use unordered message ids to check message sorting in message_router
* Added has_message_id and compare_message_id_less to message.h
* Moved member type definitions to a traits class
message_packet, message_types, sorted_message_types
* Sync message_router_generator to changes
* Fixed C++03 compatibility
---------
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.co.uk>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
Co-authored-by: Bo Rydberg <2945606+bolry@users.noreply.github.com>
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: Mike Bloom <91038685+mike919192@users.noreply.github.com>
Co-authored-by: taltenbach <92919739+taltenbach@users.noreply.github.com>
Co-authored-by: Bryton Flecker <fleckerbr@gmail.com>
Co-authored-by: Bryton Flecker <bflecker@swe.com>
Co-authored-by: Drew Rife <drew.rife95@gmail.com>
Co-authored-by: Marco Nilsson <marco@zyax.se>
When a type occured multiple times in a variant, comparison operator
asserted before.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Added etl::type_list to etl::observer
* Added etl::type_list to etl::nth_type
* Added missing 'typename' to type_list nth_type
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added type_list definitions for nth_type and observer
* Added etl::type_list to etl::variant
* Updated comments
* Addedetl::type~_list to message_router, observer, visitor
# Conflicts:
# include/etl/observer.h
# test/vs2022/etl.vcxproj.filters
* Added member type_list type to tuple
* Work in progress
* Copy changes from other source
* Removed unused tests
* Fix iter_swap namespace
* Add type_list functionality to etl::variant using etl::variant_from_type_list
* Add type_list functionality to etl::message_packet using etl::message_packet_from_type_list
* Add type_list functionality to etl::message_router using etl::message_router_from_type_list
* Add type_list functionality to etl::observer using etl::observer_from_type_list
* Add type_list functionality to etl::tuple using etl::tuple_from_type_list
* Allow etl::make_index_sequence to be created from an etl::type_list
* Add type_list functionality to etl::visitor using etl::visitor_from_type_list
* Fix iter_swap namespace
* Allow creation of a message_packet with no message types
* Allow creation of a message_router with no message types
* Updated VS2022 project files
* Added missing test files CMakeLists.txt
* Fix C++03 compatibility
Fixed unused aregument warnings
* Synced message_packet generator to updated code
* Synced message_router generator to updated code
* Synced message_router generator to updated code
# Conflicts:
# include/etl/generators/message_router_generator.h
# include/etl/message_router.h
* Fixed missing zero message specialisation for <= C++14
* Fixed missing zero message specialisation for <= C++14
* Fix year_month arithmetic and correct chrono API behavior (#1257)
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Restore default constructor behavior for chrono calender
* Suppress warnings from std in optimized builds (#1259)
When testing with ./run-tests.sh 23 3 10, some warnings from
std surfaced which resulted in build errors.
* Add template deduction guide for span from vector (#1264)
* Create span from vector deduction
* Use ivector for deduction. Add vector_ext to test
* Add vector pointer to test
* Finish tests
* Initialize pdata_ext and others
* Document how to implement platform specifics (#1262)
Some interfaces need to be implemented in every project
or platform using the ETL:
* etl_get_high_resolution_clock
* etl_get_system_clock
* etl_get_steady_clock
* etl_putchar
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix etl::as_bytes for etl::span<const T> (#1266)
A missing 'const' in the etl::as_bytes implementation was causing a
compile-time error when etl::as_bytes was called on a span of const
values.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove some UB in test_vector_non_trivial.cpp (#1268)
Some of the tests' UB are detectable by Gcc15 and thus give a compile error due to warnings-as-error flag.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Update C++26 deprecated constructs to ensure future standard compliance (#1267)
* Update C++26 deprecated constructs to ensure future standard compliance
I replaced std::is_trivial with a combination of std::is_trivially_default_constructible and std::is_trivially_copyable. Additionally, I added the required comma before the ellipsis in variadic functions to match updated language specifications.
* Some additional is_trivial related changes not found directly when compiling tests in C++26
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix return value of get_token_list (#1271)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix etl::tuple template signature error in pair assignment operator (#1265)
* Fix etl::tuple template signature error in pair assignment operator
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update etl::tuple to explicitly use etl::pair or std::pair in assignment operator
* Added tests for etl::tuple assignment from pair
---------
Co-authored-by: Bryton Flecker <bflecker@swe.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove advance() on static spans (#1281)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Remove advance() on static spans
Since the size of a static span is constant, we can't reasonably
advance() on it.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add missing includes (#1286)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add missing includes
Before this change, the includes needed to be done explicitly by
files using basic_string_stream.h, and be included first. This
was error prone, especially if includes are reordered (e.g. via
the currently defined clang-format rules).
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Move comparison operators of etl::expected to namespace etl (#1287)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Move comparison operators of etl::expected to namespace etl
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Make typed_storage constructor constexpr (#1291)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Make typed_storage constructor constexpr
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add basic_format_arg constructor for ibasic_string (#1288)
* Allow string as format arg
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added test string escaped
* Add temporary string test
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* QR Code for Github
* Added etl::visitor_from_type_list
* accepts(id) for empty router passes on to a sucessor
* Fixed incorrect comment from 'tuple' to 'message_router'
* PR review changes
* PR review changes
* Fixed internal constexptr flag in message_packet
* Fixed unused variable in unti test
* Added new type_list features
Added make_index_sequence_with_offset
* Renamed type_list_select_from_sequence to type_list_select_from_index_sequence
* Replaced type_list_size<TTypeList>::value with TTypeList::size internally for better clarity.
* Added etl::type_list_remove, etl::type_list_remove_if, etl::type_list_unique, etl::type_list_pop_front, etl::type_list_pop_back
* Add ref-qualifiers to basic_format_spec (#1292)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* feat: use ref-qualifiers for basic_format_spec
Converted the l-value methods to ref-qualified and also added r-value ref-qualified methods.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add support for size_t and unsigned long to etl::format (#1290)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add support for size_t and unsigned long to etl::format
* Document list of supported types in etl::supported_format_types
* Add further types and tests for etl::format
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Deduce underlying storage size when constructing string_ext from char[]. (#1269)
* Deduce underlying storage size when constructing string_ext from char[].
This removes the need for passing sizeof(storage) to the constructor.
* Add array constructors for the other string types.
- u16string_ext
- u32string_ext
- u8string_ext
- wstring_ext
* Add additional constructors to match existing API.
* Fix inconsistent test argument order.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Added etl::type_list_all_of, etl::type_list_any_of, and etl::type_list_none_of
* Added etl::type_list_is_unique
* Added type_list_is_empty
* indentation fix
* Fix merge error
* Renamed type_list_prepend & type_list_append to type_list_push_front & type_list_push_back respectively
* Added tests for make_index_sequence & make_index_sequence_with_offset
* Resolve coderabbit review issues
* Resolve coderabbit review issues
* Resolve coderabbit review issues
* Resolve coderabbit review issues
* Added etl::type_list_indices_of_type which create an etl::index_sequence of all of the indexes of a specified type in an etl::type_list
* Updated comments
* Resolve coderabbit review issues
Added index_sequence utility to support type_list utilities. Added additional index_sequence utilities for completeness
* Added etl::index_sequence_cat, etl::index_sequence_pop_front, etl::index_sequence_pop_back, etl::index_sequence_at
* Fix 'unused variable' error in index_sequence tests
---------
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.co.uk>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: Bo Rydberg <2945606+bolry@users.noreply.github.com>
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: Mike Bloom <91038685+mike919192@users.noreply.github.com>
Co-authored-by: taltenbach <92919739+taltenbach@users.noreply.github.com>
Co-authored-by: Bryton Flecker <fleckerbr@gmail.com>
Co-authored-by: Bryton Flecker <bflecker@swe.com>
Co-authored-by: Drew Rife <drew.rife95@gmail.com>
Co-authored-by: Marco Nilsson <marco@zyax.se>
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add constexpr to array comparison operators
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Added etl::type_list to etl::observer
* Added etl::type_list to etl::nth_type
* Added missing 'typename' to type_list nth_type
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added type_list definitions for nth_type and observer
* Added etl::type_list to etl::variant
* Updated comments
* Addedetl::type~_list to message_router, observer, visitor
# Conflicts:
# include/etl/observer.h
# test/vs2022/etl.vcxproj.filters
* Added member type_list type to tuple
* Work in progress
* Copy changes from other source
* Removed unused tests
* Fix iter_swap namespace
* Add type_list functionality to etl::variant using etl::variant_from_type_list
* Add type_list functionality to etl::message_packet using etl::message_packet_from_type_list
* Add type_list functionality to etl::message_router using etl::message_router_from_type_list
* Add type_list functionality to etl::observer using etl::observer_from_type_list
* Add type_list functionality to etl::tuple using etl::tuple_from_type_list
* Allow etl::make_index_sequence to be created from an etl::type_list
* Add type_list functionality to etl::visitor using etl::visitor_from_type_list
* Fix iter_swap namespace
* Allow creation of a message_packet with no message types
* Allow creation of a message_router with no message types
* Updated VS2022 project files
* Added missing test files CMakeLists.txt
* Fix C++03 compatibility
Fixed unused aregument warnings
* Synced message_packet generator to updated code
* Synced message_router generator to updated code
* Synced message_router generator to updated code
# Conflicts:
# include/etl/generators/message_router_generator.h
# include/etl/message_router.h
* Fixed missing zero message specialisation for <= C++14
* Fixed missing zero message specialisation for <= C++14
* Fix year_month arithmetic and correct chrono API behavior (#1257)
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Restore default constructor behavior for chrono calender
* Suppress warnings from std in optimized builds (#1259)
When testing with ./run-tests.sh 23 3 10, some warnings from
std surfaced which resulted in build errors.
* Add template deduction guide for span from vector (#1264)
* Create span from vector deduction
* Use ivector for deduction. Add vector_ext to test
* Add vector pointer to test
* Finish tests
* Initialize pdata_ext and others
* Document how to implement platform specifics (#1262)
Some interfaces need to be implemented in every project
or platform using the ETL:
* etl_get_high_resolution_clock
* etl_get_system_clock
* etl_get_steady_clock
* etl_putchar
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix etl::as_bytes for etl::span<const T> (#1266)
A missing 'const' in the etl::as_bytes implementation was causing a
compile-time error when etl::as_bytes was called on a span of const
values.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove some UB in test_vector_non_trivial.cpp (#1268)
Some of the tests' UB are detectable by Gcc15 and thus give a compile error due to warnings-as-error flag.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Update C++26 deprecated constructs to ensure future standard compliance (#1267)
* Update C++26 deprecated constructs to ensure future standard compliance
I replaced std::is_trivial with a combination of std::is_trivially_default_constructible and std::is_trivially_copyable. Additionally, I added the required comma before the ellipsis in variadic functions to match updated language specifications.
* Some additional is_trivial related changes not found directly when compiling tests in C++26
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix return value of get_token_list (#1271)
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix etl::tuple template signature error in pair assignment operator (#1265)
* Fix etl::tuple template signature error in pair assignment operator
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update etl::tuple to explicitly use etl::pair or std::pair in assignment operator
* Added tests for etl::tuple assignment from pair
---------
Co-authored-by: Bryton Flecker <bflecker@swe.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove advance() on static spans (#1281)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Remove advance() on static spans
Since the size of a static span is constant, we can't reasonably
advance() on it.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add missing includes (#1286)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add missing includes
Before this change, the includes needed to be done explicitly by
files using basic_string_stream.h, and be included first. This
was error prone, especially if includes are reordered (e.g. via
the currently defined clang-format rules).
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Move comparison operators of etl::expected to namespace etl (#1287)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Move comparison operators of etl::expected to namespace etl
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Make typed_storage constructor constexpr (#1291)
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Make typed_storage constructor constexpr
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Add basic_format_arg constructor for ibasic_string (#1288)
* Allow string as format arg
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added test string escaped
* Add temporary string test
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* QR Code for Github
* Added etl::visitor_from_type_list
* accepts(id) for empty router passes on to a sucessor
* Fixed incorrect comment from 'tuple' to 'message_router'
* PR review changes
* PR review changes
* Fixed internal constexptr flag in message_packet
* Fixed unused variable in unti test
---------
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.co.uk>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: Bo Rydberg <2945606+bolry@users.noreply.github.com>
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: Mike Bloom <91038685+mike919192@users.noreply.github.com>
Co-authored-by: taltenbach <92919739+taltenbach@users.noreply.github.com>
Co-authored-by: Bryton Flecker <fleckerbr@gmail.com>
Co-authored-by: Bryton Flecker <bflecker@swe.com>
* Fixed tree node rotate
Improved tree node rotate tests to test all links.
* Removed trailing whitespace
* Removed trailing whitespace
---------
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
* Deduce underlying storage size when constructing string_ext from char[].
This removes the need for passing sizeof(storage) to the constructor.
* Add array constructors for the other string types.
- u16string_ext
- u32string_ext
- u8string_ext
- wstring_ext
* Add additional constructors to match existing API.
* Fix inconsistent test argument order.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add support for size_t and unsigned long to etl::format
* Document list of supported types in etl::supported_format_types
* Add further types and tests for etl::format
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* feat: use ref-qualifiers for basic_format_spec
Converted the l-value methods to ref-qualified and also added r-value ref-qualified methods.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Deduce underlying storage size when constructing string_ext from char[].
This removes the need for passing sizeof(storage) to the constructor.
* Add array constructors for the other string types.
- u16string_ext
- u32string_ext
- u8string_ext
- wstring_ext
* Add additional constructors to match existing API.
* Fix inconsistent test argument order.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Add support for size_t and unsigned long to etl::format
* Document list of supported types in etl::supported_format_types
* Add further types and tests for etl::format
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* feat: use ref-qualifiers for basic_format_spec
Converted the l-value methods to ref-qualified and also added r-value ref-qualified methods.
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Allow string as format arg
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added test string escaped
* Add temporary string test
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>
* Fix etl::tuple template signature error in pair assignment operator
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update etl::tuple to explicitly use etl::pair or std::pair in assignment operator
* Added tests for etl::tuple assignment from pair
---------
Co-authored-by: Bryton Flecker <bflecker@swe.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Update C++26 deprecated constructs to ensure future standard compliance
I replaced std::is_trivial with a combination of std::is_trivially_default_constructible and std::is_trivially_copyable. Additionally, I added the required comma before the ellipsis in variadic functions to match updated language specifications.
* Some additional is_trivial related changes not found directly when compiling tests in C++26
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Some of the tests' UB are detectable by Gcc15 and thus give a compile error due to warnings-as-error flag.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
A missing 'const' in the etl::as_bytes implementation was causing a
compile-time error when etl::as_bytes was called on a span of const
values.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Create span from vector deduction
* Use ivector for deduction. Add vector_ext to test
* Add vector pointer to test
* Finish tests
* Initialize pdata_ext and others
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Fix & add more tests for year_month arithmetic
* Minor addtions to previous commit
* More missing values to be uninitialized
* Update the default constructors to = default and correct default constructor tests accordingly
* Restore default constructor behavior for chrono calender
* Allow string as format arg
* Remove AppVeyor build status badge
Removed AppVeyor build status badge from README.
* Update README.md
* Update CONTRIBUTING.md
Updated the instructions for contributing.
* Fix for issue 1276 "Data corruption in the etl::bip_buffer_spsc_atomic" (#1277)
* Reproduce data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Fix data corruption bug in the `etl::bip_buffer_spsc_atomic`.
* Added test string escaped
* Add temporary string test
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Sergei <sergej.shirokov@gmail.com>