Releases: ETLCPP/etl
Fixes and features
Updates:
Added new C++17 function wrappers
Simplified definition of is_base_of
Fixed static definition for etl::string
Redefined ETL_DEPRECATED
Updated nth_type to handle a type list of zero length
Updated Github Actions to checkout@v4
Added make_delegate for C++17
Added starts_with and ends_with to basic_string
Made construction from std::basic_string_view explicit
Added contains member function to string_view
Fixed possible null dereference for etl::multi_span operator ->
Fixed shadowing warnings
Changed etl::mem_cast to support bidirectional iterators
Make 'packed' have better cross platform functionality
Fixes:
#937 ETL_USING_LEGACY_VARIANT Is always getting evaluated to 1
#940 Allow etl::observer notification without argument
#942 Warning on pragma c++20-compat
#951 Can't get call_if to work because of etl::optional
#956 Fix build error (etl::circular_buffer)
#957 Support heterogenous lookup for maps
#959 Treat bitset with size_type
#972 Template not allowed warning in parameter pack
#979 QueuedMessageRouter does not work : message are not sent to queue
#980 Documentation clarification: Add link from endianess to unaligned_type
#982 Added return to etl::optional emplace, fixed typo
#984 Update Base64 Documentation
#986 Added const iterators to span
#987 Fix test loop
#992 Return reference from emplace() in etl::queue. Added return reference from stack::emplace
#993 Need "lighter weight" ETL_ASSERT
#997 Request: operator[ ] for containers can be configured to emit an exception
#1000 Make ETL_TYPEDEF Trivially Copyable
#1017 etl::max_element has undefined behavior if the range is empty
#1016 Allow compile time CRC calculation
#1019 UB when passing a temporary lambda to a delegate
#1022 Request: Add option to disable non-lock-free atomics - Added is_always_lock_free member constant to etl::atomic
#1030 Modify etl::message_packet to not require polymorphic messages
#1031 etl::string is invalid if calling assign() with itself. Added additional checks for self assignment.
#1032 Tasking Compiler Failure For parameter_pack.h
Pull Requests:
#947 Remove unused git submodule config
#965 Fix accident creation of a delegate to an rvalue delegate when copying/assigning from delegate with mismatching signature
#985 Add uncopyable.h, class uncopyable
#986 Added const iterators to span
#989 Packed unaligned_type
#990 Add contains() method to etl::unordered_map and etl::unordered_set
#992 Return reference from emplace() in etl::queue
#999 Add at_address() to etl::unaligned_type. Added etl::unaligned_type_ext instead at_address()
#1001 Add max_item_size() to etl::ipool
#1002 Add singleton_base
#1005 Fixed memory.h: mem_copy, mem_move, mem_compare for pointers to const
#1006 Fix arm64 signed char
#1007 Fix fixed extent span empty()
#1021 Some minor cleanup changes
#1014 Added missing rational arithmetic functions from
#1027 Add etl::make_span()
Fixed issues #948 & #949
Fix unaligned_type for floats + various small fixes
Removed EmbeddedTemplateLibrary-20.39.0.tar.gz from project.
EmbeddedTemplateLibrary-20.39.0.tar.gz
included in error.
Fixes and new type traits
Updated IO Port API. Various features and fixes
Refactored:
Breaking change.
Modified io_port classes so that they are not derived from iterator types.
Added iterator and const_iterator types.
Added iter() and citer() member functions to get an iterator.
Added &=
|=
^=
<<=
>>=
and ~ operators (only available for io_port_rw
and io_port_wos
types)
Added static asserts to only allow integral types.
Fixes:
#921 unique_ptr reset
#923 Missing equality operator for class expected
#930 Unused parameter warnings
#931 Using etl::make_vector
to make a vector of two pairs causes a compile error
Features:
#918 Request for additional operator support for etl::io_port_*
#919 callback_timer
: expose callback_timer_data::is_active()
as icallback_timer
public method
#920 Define ETL_USING_LEGACY_VARIANT
as a convenience macro for code that tries to support both new and legacy variants
#940 Allow etl::observer
notification without argument
Pull Requests
#905 Add-support-for-type_identity
#909 fix c++20-compat false positive
#914 Fix doc comment for pool::allocate()
#924 Add an etl::nullptr_t
type to <etl/nullptr.h>
#925 Add equality operators for class expected
#926 Fix issue #923 equality operator for class expected
#927 Fix missing partial specialisation equal operators
#928 Add missing swap
implementations for expected
#929 Fix run-tests.sh script
#932 Fix issue #931 Using etl::make_vector
to make a vector of two pairs causes a compile error
#934 Fixes compiler detection with Wundef
#935 Added 20 bit integral limits (MSP430 devices)
New configuration macro, ETL_USE_20BIT_TYPES
, which controls the definition of ETL_USING_20BIT_TYPES
and ETL_NOT_USING_20BIT_TYPES
.
#939 Fix histogram indexing when accessed via operator[]
#895 Removed std algorithm calls from algorithm.h
Missing changes from last release
Various fixes
Removed ETL_CONSTEXPR for string and vector size()
#892 Compilation Error with constexpr in etl::string_base::size() on ESP-WROVER-KIT (c++11)
Removed ETL_CONSTEXPR from etl::string_base::size().
Removed ETL_CONSTEXPR from etl::vector::size().
Added GCD, LCM. Iterator specialisations for etl::rotate. Constexpr for etl::absolute
Features:
Added GCD and LCM algorithms. etl::gcd
and etl::lcm
Added specialisations of etl::rotate
for different iterator types
Added ETL_NODISCARD
, ETL_CONSTEXPR14
and ETL_NOEXCEPT
to etl::absolute
and etl::absolute_unsigned