* Fix compilation with -Wsign-conversion
For tests with GCC and Clang
Fixes https://github.com/ETLCPP/etl/issues/632
* Fix support of negative Id in type_lookup.h: type_from_id
* Fix element access arithmetic in atomic_gcc_sync.h fetch_add/fetch_sub
* Fix rounded_integral_division.h: divide_round_half_odd(): direction is always 1
* Add ranges
* Print test names at test time (#1343)
* Fix conflit commit errors
* Cast return value of operator* to value_type
Fixed warning on VS2022
---------
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.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
* #1258 Manchester coding
* Add manchester documentation
* #1258 Manchester coding
* Preparation for GitHub pages
* #1324 Manchester documentation
* Some small fixes
* Print test names at test time (#1343)
* IGN-280 biphasic amplitude as float
* Add big-endian devcontainer
* manchester
* fixed the configuration to work with GitHub Codespaces. The changes use cross-compilation with QEMU emulation instead of trying to use a native s390x container.
* manchester
* Made manchester work for big-endian
* Some updates to the container
* Manchester big-endian support
* Cleanup
* Manchester big-endian support
* add sourcedirectory
* Enable running with ctest
* Manchester big-endian support
* Update documentation
* Manchester big-endian support
* QA
* Manchester big-endian support
* QA
* Enable testing with ctest with cross-compiler (#5)
* Enable testing with ctest and with cross-compiler
* Clean up includes in manchester.h
---------
Co-authored-by: Timon Zijnge <timon.zijnge@imec.nl>
---------
Co-authored-by: Timon Zijnge <timon.zijnge@imec.nl>
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
* 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>
* 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>
* 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>
* 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
* 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>