Multiple fixes, features and pull requests
Fixes:
#803 etl::unordered_map
buffer overflow
#805 legacy etl::bitset set/reset
does not work if the element type is greater than 8 bit
#815 etl::remove_if
calls predicate twice for first iterator, where predicate returns true.
#819 etl::optional
cannot return an optional object of self from member function
#820 etl::send_message
does not allow for non-virtual calls
#825 Fixed extent etl::span
shouldn't allow default constructor
#827 Declaration order for etl::first_set_bit_position
in binary.h
#829 Possible bug on assign of etl::array
#830 gcc warning - potential null pointer dereference using etl::map
#845 etl::message_packet
missing a copy constructor
#857 etl::expected
emplace methods are missing-return
#868 etl::variant
is missing comparison operators
#869 etl::fsm::receive
function can call p_state process_event
also when p_state
is nullptr
#873 Validate allocated DataNode
is not null to prevent gcc Wnull-dereference
#874 Allow direct removal of a node from an etl::intrusive_list
#877 Optimize find_first_not_of
and find_last_not_of
on string_view
#855 Strange expression in volatile atomic operator--
Pull Requests:
#782 etl::set
is full error when adding existing item
#804 etl::variant
(variadic) default constructed state
#812 Implement SAE-J1850 CRC8
#832 Only copy/move storage value when optional
is valid
#843 In subspan
function, add static checks on extents
#849 Fix string_stream
add missing initializations of const
format specifiers
#850 Fixed names according to Arduino's guidelines
#854 In-place construction of shared_message
#858 Fix unique_ptr
assigning nullptr
to a null unique_ptr
causes an assert
#861 Implement constexpr
strong type_def
#862 Update ETL_CONSTEXPR
and C++14 designation from type_def
#863 Add eq
and ne
operators for compare utility
#865 Add utils compare equality operator
#879 Make include paths to private files relative
Features:
#774 Truncating access for etl::bitset
- Added extract()
functions.
#806 etl::variant_pool
should support C++17 variadic parameters (supports C++11 variadic parameters)
#818 Apply code spell check across entire code base
#841 Change push
to push_back
on containers, so they can be used with std::back_inserter
. (Added push_insert_iterator
instead).
#847 Add has_active_timer
to callback_timer
. (Added to all timers).
#883 Add etl::partition
and etl::nth_element
algorithms
#864 cyclic_value
first
/last
methods. Make first()
and last()
static
for template based limits specialisation
Changes without a GitHub issue#:
Added etl::mem_fn
(clone of std::mem_fn
)
Added etl::generate
algorithm (clone of std::generate
)
Added binary functors for ~ & | ^
Added etl::is_default_constructible
& etl::is_default_constructible_v
Added syntax checks to GitHub CI
Refactored etl::optional
implementation
Fixed etl::optional operator =()
for invalid values with non-pod types
Refactored message_packet
constructors
Added specific copy and move constructors to message_packet
for C++17 and above.
Changed optional 'simple' types implementation for C++14 constexpr
compatibility
Fixed implicitly disabled copy constructor for message_packet
Modified accepts()
message_router
functions to interrogate subscribed and successor routers to achieve consistency.
Fixed nodiscard
keyword errors
Removed unused ETL_STATIC_CONSTANT
Make binary functor operator() const
Improved display of CHECK_EQUAL_HEX
in UnitTest++