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>
* 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
* Imported inplace_function and invoke functionality from original branch
* Fixed spelling mistake
* Update test/CMakeLists.txt
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update test/test_inplace_function.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Moved member type function_ptr to private section
* Updated comments in inplace_function.h
* Updated action workflows to be triggered on a pull-request based on development branch
* Added suggested changes from PR reviews
---------
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.co.uk>
* Make code base with tests compile under gcc-14
* Update buffer_descriptors.h
Following the same style as non-tests headers have. E.g., include/etl/intrusive_list.h & include/etl/intrusive_forward_list.h
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Check in indirect_vector::emplace_back if the vector is full, when push pop checks are requested
* Add extra checks to indirect_vector
* Fix emplace in indirect_vector not taking const_iterator
* Fix usage of ipool::create<T> in indirect_vector, so that there are no intermitten objects created
---------
Co-authored-by: Béla Iványi <bela.ivanyi@idata.hu>
* Synchronize on C++ 17 for "Windows - STL" and "Windows - No STL"
MSVC C++20 handles char* differently on iteration
* Add etl::format
This adds etl::format, guided by std::format, avoiding dynamic memory
allocation
* topic/expected-monadic-operations:
- added and_then, or_else, transform, and transform_error with simple tests
* topic/expected-monadic-operation:
- added void TValue specialization operations
- updated unit tests to include expected<void, TError>
- added is_expected to expected.h, used in and_then to ensure that the returned type is an expected
* topic/expected-monadic-operations:
- made implementation c++11 compatible
* topic/expected-monadic-operations:
- started addressing coderabbit feedback
* topic/expected-monadic-operations:
- adapted invoke to etl
- reworked return type deduction
- filled in or_else unit tests to be more complete
- still need to add invoke unit tests
* topic/expected-monadic-operations:
-c++14 compliance
* topic/expected-monadic-operations:
- completed coderabbit suggestions
* topic/expected-monadic-operations:
- formatting in invoke and expected
- added test suite for invoke
* topic/expected-monadic-operations:
- fixed missing moves for const TValue&& and const TError&&
* topic/expected-monadic-operations:
- made everything c++11 compatible, very verbose as a result
* topic/expected-monadic-operations:
- fixed code rabbit rewivew for move semantics in const && overloads
* topic/expected-monadic-operations:
- moved around a move
* topic/expected-monadic-operations:
- added etl:: to invoke_result calls that were missing it
* topic/expected-monadic-operations:
- formatting
* topic/expected-monadic-operations:
- added invoke for void f() calls for consistency
* topic/expected-monadic-operations:
- reworked entire thing to be able to handle expected<T,E> to expected<void,E> without even more code duplication
* topic/expected-monadic-operations:
- added trailing return type to maintain c++11 compatibility
* topic/expected-monadic-operations:
- fixed mismatch between deduced type and return for a few functions
* topic/expected-monadic-operations:
- replaced calls to get<TError> and get<TValue> with get<Error_Type> and get<Value_Type>
---------
Co-authored-by: Jon Whitfield <jon@volumetrix.com>
* Add ability to derive etl::exception from std::exception
* Only add test for exception std base when using STL
* Use ETL_NOEXCEPT macro to define a function as noexcept
* Rename macro to keep in line with common style
* Add using_std_exception to etl::traits
---------
Co-authored-by: Béla Iványi <bela.ivanyi@idata.hu>
* Fix optimized tests by suppressing warning from STL
* Fix uninitialized buffer in hash for month_weekday
* Fix overlapping memcpy with memmove
* Fix random out of bounds index in __builtin_memmove
Suppressing compiler warning
* Fix array bounds warnings from static casts in message_router
In compiled code, casting to wrong message types is generated,
even though the code paths are supposed to be never taken due to runtime
msg id checks. Therefore, the warnings can be suppressed.
* Fix syntax errors in base64 decoder tests
* Fix test failure in test_rounded_integral_division.cpp when optimized
When building tests optimized, test_round_to_half_even_signed_limits
fails due to the fact that
etl::absolute(std::numeric_limits<int32_t>::min()) < 0
* Fix typo for remainder in rounded_integral_division.h
* Use etl::make_unsigned instead of std::make_unsigned
* Fix divide_round_half_down and divide_round_half_odd
* Added mechanism to catch reentrant calls to methods that could change states in FSM/HFSM
* Added missing include for HFSM unit tests
* Fixed error text spacing
* Disabled move/copy semantics for reentrancy guard
* Updated FSM generator
* Made move semantics only available for C++11 and higher
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Add checks to vector and fix test failures
* Add tests to vector
* Add tests to external buffer and non trivial
* All tests should be implemented
* Add checks to vector_pointer and vector_pointer_ext
* Get bad iterators from a second vector
* debug assert POC
* Swith to ETL_CONSTEXPR14
* Finish TODO checks
* First and last can be equal
* Add ETL_DEBUG_THROW_EXCEPTIONS
* Try allowing c++11 constexpr
* Add macro for throwing from c++11 constexpr
* Remove braces
* Add extra asserts in size_t overload functions
* Fill out debug asserts
* Line up comments
* Regression fix: Support zero arguments emplace() in etl::optional (#1183)
* Added coderabbitai configuration
* Added builtin mem function tests
* Modified etl::typed_storage
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW
* Added etl::typed_storage_ext and swap for same
* Added etl::typed_storage_ext and swap for same
# Conflicts:
# include/etl/alignment.h
* Added release notes
* Fixes to GCC -O2 errors
* Changed char* parameters to value_type* parameters
* Fixed compilation issues for const containers unit tests
* Added automatic selection of __builtin_memxxx functions for GCC and clang
* Added enhanced coderabbit configuration
* Updated version and release notes
* Disabled constexpr const container tests for C++11
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Updated version and release notes
* feat: removed unreachable break statements (#1169)
* Updated version and release notes
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Support zero arguments emplace() in etl::optional
For non-fundamental types, a recent change in etl::optional was
introduced that doesn't support zero arguments emplace() anymore.
This change fixes it and adds the respective test.
---------
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
* Fix etl::typed_storage by supporting omitted destructors (#1182)
* Added coderabbitai configuration
* Added builtin mem function tests
* Modified etl::typed_storage
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW
* Added etl::typed_storage_ext and swap for same
* Added etl::typed_storage_ext and swap for same
# Conflicts:
# include/etl/alignment.h
* Added release notes
* Fixes to GCC -O2 errors
* Changed char* parameters to value_type* parameters
* Fixed compilation issues for const containers unit tests
* Added automatic selection of __builtin_memxxx functions for GCC and clang
* Added enhanced coderabbit configuration
* Updated version and release notes
* Disabled constexpr const container tests for C++11
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Updated version and release notes
* feat: removed unreachable break statements (#1169)
* Updated version and release notes
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Fix etl::typed_storage by supporting omitted destructors
In a recent change to alignment.h, the etl::typed_storage was
changed in a way that in case of an already constructed object,
the object is created via assignment.
However, this contradicts the original use case that led to
etl::typed_storage in the first place:
https://github.com/ETLCPP/etl/pull/1023
The goal is to omit destructors (and at the same time support
classes with deleted assignment operators), so they can be optimized out
at link time.
This change reverts commit ac7b268 to restore the original
functionality and changes the test to reflect the original
use case.
* Fix missing create() in non-C++11 typed_storage_ext constructor
* Typo fix
---------
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* removed navis file from project
* Updated version and release notes
* Removed forced unsigned int cast in type_def bit-shift operators (#1178)
* Removed UB in type_def bit-shift operators
* Changed shift operators to allow both signed and unsigned operands for shifts
This allows the library user to explicitly use unsigned values to avoid UB
* Fixed constexpr errors for CPP11
* Changed is_arithmetic checks to use is_integral since valid shifts require integral operands
* Removed need for CPP11 since changes are CPP03 compatible
* Delete project navis files
* Add force CI check on piull requests
* Removed ETL_NOEXCEPT from delegate operator(), call_if(), and call_or()
Removed ETL_NOEXCEPT from closureoperator(), call_if(), and call_or()
* Updated version and release notes
* Updated version and release notes
* Remove noexcept from delegate method stubs. (#1185)
In addition to removing noexcept from call_if, this is also needed to prevent
an abort when cancelling a pthread that is executing a delegate.
* Updated version and release notes
* Re architect the extra checks
* Add CHECK_EXTRA
* Fix newline at end of file
* The check index macro also needs to be defined to throw
* Remove ETL_VERBOSE_ERRORS macros
---------
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: David Ockey <2897027+ockeydockey@users.noreply.github.com>
Co-authored-by: Marco Nilsson <marco@zyax.se>
* debug assert POC
* Swith to ETL_CONSTEXPR14
* Finish TODO checks
* First and last can be equal
* Add ETL_DEBUG_THROW_EXCEPTIONS
* Try allowing c++11 constexpr
* Add macro for throwing from c++11 constexpr
* Remove braces
* Add extra asserts in size_t overload functions
* Fill out debug asserts
* Line up comments
* Fixed ability to populate 16-bit strings with 8-bit data
* Added more unit tests
* Fixed C++11 build errors
* Changed testing to accommodate C++11 better
* Cleaned up comments
* Cleaned up tests to be more consistent
* Make template matches mutually exclusive to prevent ambiguous behavior
* Added changes to u32 and wchar strings
* Changed const range tests to use const string
* Added support for transitions on state enter for HFSM
* Fixed unit test build error
* Comment clean-up
* Changed FSM so that self-transitions can also transition "on enter"
* Fixing C++03 build error for clang
* Add checks to vector and fix test failures
* Add tests to vector
* Add tests to external buffer and non trivial
* All tests should be implemented
* Add checks to vector_pointer and vector_pointer_ext
* Get bad iterators from a second vector
* Regression fix: Support zero arguments emplace() in etl::optional (#1183)
* Added coderabbitai configuration
* Added builtin mem function tests
* Modified etl::typed_storage
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW
* Added etl::typed_storage_ext and swap for same
* Added etl::typed_storage_ext and swap for same
# Conflicts:
# include/etl/alignment.h
* Added release notes
* Fixes to GCC -O2 errors
* Changed char* parameters to value_type* parameters
* Fixed compilation issues for const containers unit tests
* Added automatic selection of __builtin_memxxx functions for GCC and clang
* Added enhanced coderabbit configuration
* Updated version and release notes
* Disabled constexpr const container tests for C++11
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Updated version and release notes
* feat: removed unreachable break statements (#1169)
* Updated version and release notes
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Support zero arguments emplace() in etl::optional
For non-fundamental types, a recent change in etl::optional was
introduced that doesn't support zero arguments emplace() anymore.
This change fixes it and adds the respective test.
---------
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
* Fix etl::typed_storage by supporting omitted destructors (#1182)
* Added coderabbitai configuration
* Added builtin mem function tests
* Modified etl::typed_storage
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW
* Added etl::typed_storage_ext and swap for same
* Added etl::typed_storage_ext and swap for same
# Conflicts:
# include/etl/alignment.h
* Added release notes
* Fixes to GCC -O2 errors
* Changed char* parameters to value_type* parameters
* Fixed compilation issues for const containers unit tests
* Added automatic selection of __builtin_memxxx functions for GCC and clang
* Added enhanced coderabbit configuration
* Updated version and release notes
* Disabled constexpr const container tests for C++11
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Updated version and release notes
* feat: removed unreachable break statements (#1169)
* Updated version and release notes
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Fix etl::typed_storage by supporting omitted destructors
In a recent change to alignment.h, the etl::typed_storage was
changed in a way that in case of an already constructed object,
the object is created via assignment.
However, this contradicts the original use case that led to
etl::typed_storage in the first place:
https://github.com/ETLCPP/etl/pull/1023
The goal is to omit destructors (and at the same time support
classes with deleted assignment operators), so they can be optimized out
at link time.
This change reverts commit ac7b268 to restore the original
functionality and changes the test to reflect the original
use case.
* Fix missing create() in non-C++11 typed_storage_ext constructor
* Typo fix
---------
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* removed navis file from project
* Updated version and release notes
* Removed forced unsigned int cast in type_def bit-shift operators (#1178)
* Removed UB in type_def bit-shift operators
* Changed shift operators to allow both signed and unsigned operands for shifts
This allows the library user to explicitly use unsigned values to avoid UB
* Fixed constexpr errors for CPP11
* Changed is_arithmetic checks to use is_integral since valid shifts require integral operands
* Removed need for CPP11 since changes are CPP03 compatible
* Delete project navis files
* Add force CI check on piull requests
* Removed ETL_NOEXCEPT from delegate operator(), call_if(), and call_or()
Removed ETL_NOEXCEPT from closureoperator(), call_if(), and call_or()
* Updated version and release notes
* Updated version and release notes
* Remove noexcept from delegate method stubs. (#1185)
In addition to removing noexcept from call_if, this is also needed to prevent
an abort when cancelling a pthread that is executing a delegate.
* Updated version and release notes
* Re architect the extra checks
* Add CHECK_EXTRA
* Fix newline at end of file
* The check index macro also needs to be defined to throw
* Remove ETL_VERBOSE_ERRORS macros
---------
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: David Ockey <2897027+ockeydockey@users.noreply.github.com>
Co-authored-by: Marco Nilsson <marco@zyax.se>
* debug assert POC
* Swith to ETL_CONSTEXPR14
* Finish TODO checks
* First and last can be equal
* Add ETL_DEBUG_THROW_EXCEPTIONS
* Try allowing c++11 constexpr
* Add macro for throwing from c++11 constexpr
* Remove braces
* Add extra asserts in size_t overload functions
* Fill out debug asserts
* Line up comments
* Removed UB in type_def bit-shift operators
* Changed shift operators to allow both signed and unsigned operands for shifts
This allows the library user to explicitly use unsigned values to avoid UB
* Fixed constexpr errors for CPP11
* Changed is_arithmetic checks to use is_integral since valid shifts require integral operands
* Removed need for CPP11 since changes are CPP03 compatible
* Added coderabbitai configuration
* Added builtin mem function tests
* Modified etl::typed_storage
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW
* Added etl::typed_storage_ext and swap for same
* Added etl::typed_storage_ext and swap for same
# Conflicts:
# include/etl/alignment.h
* Added release notes
* Fixes to GCC -O2 errors
* Changed char* parameters to value_type* parameters
* Fixed compilation issues for const containers unit tests
* Added automatic selection of __builtin_memxxx functions for GCC and clang
* Added enhanced coderabbit configuration
* Updated version and release notes
* Disabled constexpr const container tests for C++11
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Updated version and release notes
* feat: removed unreachable break statements (#1169)
* Updated version and release notes
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Fix etl::typed_storage by supporting omitted destructors
In a recent change to alignment.h, the etl::typed_storage was
changed in a way that in case of an already constructed object,
the object is created via assignment.
However, this contradicts the original use case that led to
etl::typed_storage in the first place:
https://github.com/ETLCPP/etl/pull/1023
The goal is to omit destructors (and at the same time support
classes with deleted assignment operators), so they can be optimized out
at link time.
This change reverts commit ac7b268 to restore the original
functionality and changes the test to reflect the original
use case.
* Fix missing create() in non-C++11 typed_storage_ext constructor
* Typo fix
---------
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Added coderabbitai configuration
* Added builtin mem function tests
* Modified etl::typed_storage
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Added ETL_NOEXCEPT and ETL_NOEXCEPT_IF_NO_THROW
* Added etl::typed_storage_ext and swap for same
* Added etl::typed_storage_ext and swap for same
# Conflicts:
# include/etl/alignment.h
* Added release notes
* Fixes to GCC -O2 errors
* Changed char* parameters to value_type* parameters
* Fixed compilation issues for const containers unit tests
* Added automatic selection of __builtin_memxxx functions for GCC and clang
* Added enhanced coderabbit configuration
* Updated version and release notes
* Disabled constexpr const container tests for C++11
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Attempted fixes for MacOS compilation
* Updated version and release notes
* feat: removed unreachable break statements (#1169)
* Updated version and release notes
* Modified etl::typed_storage
# Conflicts:
# include/etl/alignment.h
* Support zero arguments emplace() in etl::optional
For non-fundamental types, a recent change in etl::optional was
introduced that doesn't support zero arguments emplace() anymore.
This change fixes it and adds the respective test.
---------
Co-authored-by: John Wellbelove <john.wellbelove@asterconsulting.co.uk>
Co-authored-by: Drew Rife <darife@jlg.com>
* Make all call interfaces in etl::delegate conditionally noexcept
This covers the case when the invoked code can throw.
For operator(), this was already implemented. Do similarly for the
other call interfaces.
* Make all call interfaces in etl::closure conditionally noexcept
Similar to etl::delegate, the contained delegate might be
throwing. Apply the same solution as in etl::delegate to make
the call interfaces conditionally noexcept.
* Refactored callback_timer_locked to allow base class extention of tick method
* Implement callback timer deferred with priority option
---------
Co-authored-by: Mario Luzeiro <mluzeiro@gliderbits.com>