Skip to content

Multiple fixes, features and pull requests

Compare
Choose a tag to compare
@jwellbelove jwellbelove released this 19 Apr 17:27
· 179 commits to master since this release

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++