Skip to content

Releases: ETLCPP/etl

etl::observer bug fix + member function wrappers

24 Mar 10:35
Compare
Choose a tag to compare

Removed universal reference version of the template function etl::observer::notify_observers due to issues with movable notification types.

Added:-
etl::functor - A function object wrapper for static/global functions.
etl::member_function_wrapper - A wrapper for a member function. Creates a static member function that calls the specified member function.
etl::functor_wrapper - A wrapper for a functor. Creates a static member function that calls the specified functor.

constexpr support for etl::unaligned_type + etl::traits namespace

22 Mar 00:50
Compare
Choose a tag to compare

Added constexpr support for etl::unaligned_type.
Added etl::traits namespace containing traits mirroring many ETL macros.
Traits are const for C++03, constexpr for C++11 and above.
Removed some uses of GCC builtins due to compatibilty with constexpr.
etl::swap is now ETL_CONSTEXPR14.
Changed ETL_ENDIANNESS_IS_CONSTEXPR to ETL_HAS_CONSTEXPR_ENDIANNESS.
Changed ETL_CONSTEXPR17 to ETL_CONSTEXPR14 for reverse iterators
Added template wrappers around memcpy, memmove, memcmp, memset & memchr.
The counter in etl::debug_count is atomic, if available.
Embedded essential UnitTest++ source into the project, as it is no longer maintained on GitHub.

Timer updates and new types + misc. updates

07 Mar 12:23
Compare
Choose a tag to compare

Added message_timer_interrupt
Added callback_timer_interrupt
Changed message_timer_atomic and callback_timer_atomic to require an atomic counter template type.
Added extra condition compile macros to control std::initializer_list.
Initializer list tests are in a separate project.
Modified etl::instance_count to take an optional counter type.
Renamed Arduino files to stop PlatformIO getting confused.
Changed from C cast to C++ cast in memory.h
Always use stddef.h
Modified WCHAR_MIN and WCHAR_MAX checks.
Added char8_t type.
Fixed 'unused function parameter' warnings.

Callback and message timers now use etl::timer_semaphore_t

21 Feb 10:23
Compare
Choose a tag to compare

Callback and message timers now use etl::timer_semaphore_t instead of etl::atomic_uint_least16_t
Fixed send_message function signatures to remove compiler warnings.
Fixed #include guard in initializer_list.h.

More constexpr, bult-ins, etl::initializer_list, etl::byte, minor fixes

16 Feb 11:31
Compare
Choose a tag to compare

#503 Algorithm transform uses expensive post increment operator - Fixed for all occurences of iterator increment.
#504 ETL_CONSTANT vs const in binary.h - Fixed.
Many algorithms will leverage built-ins, if available. Dependant on compiler version.
Added detection or selection of built-ins.
Much of etl::string and etl::string_view can be constexpr.
Added ETL initializer_list implementations that are compatible with major compilers.
Added etl::construct_at support.
Added etl::byte
Re-implemented etl::singleton

Multiple new features, updates and fixes

24 Jan 20:16
Compare
Choose a tag to compare

Recoded state_chart to reduce its resource requirements.
Added compile time state chart variants.
Added etl::unaligned_type for fundamental types.
Added reverse engineered functionality from C++20 .
Added all permutations of leading/trailing bit tests.
Changed inline functions to templates in binary.h.
Added etl::midpoint and etl::lerp
Recoded etl::endian & etl::endianness to allow constexpr in certain configurations.
Updates and fixes to etl::bitset. Added to_ulong, to_ullong, to_string member functions.
Moved void_t definition.
Renamed 8bit check macro.
Updated tests to support C++20 STL.
Modified C++ language level detection.
Added all permutations of leading/trailing bit tests.
etl::iterator is more SFINAE compatible.
Updated C++ standard detection.

Split callback and message timer to atomic and locked interrupt versions. + span & array_view fixes Latest

28 Dec 18:41
d3975ee
Compare
Choose a tag to compare

Split callback and message timer to atomic and locked interrupt versions. No use of macros required.
C++03 compatible etl::delegate.
#480 Fixed: Double formatting with precision > 9
#481 Fixed: etl::span const data cannot be created from non const c array of data.
#482 Fixed: Two or more etl::span/array_view of different types create ambiguous overloading set
#483 Fixed: Added Green Hills compiler to minmax push and pop.
#484 Fixed: etl::vector test_uninitialized_resize_excess not calling uninitialized_resize.
#485 Fixed: etl::message_packet takes message types that are not in its list.

Added contains() method to etl::map and etl::set + variants.

05 Dec 19:11
Compare
Choose a tag to compare

Added support for transparent comparators.
When ETL_NO_ATOMICS is defined the timer.h file does not define timer_semaphore_t.
etl::deque::resize throws etl::deque_full instead of etl::deque_out_of_bounds, if requested size is too large.

Updates and fixes

21 Nov 19:01
Compare
Choose a tag to compare

Updated container insert and erase to C++11 style const_iterator parameters. (#463)
Fixed container template function overload abiguity. (#466)
Harmonize copy ctor and assignment for etl::delegate. (#465)
Added constexpr support for etl::enum_type. (#462)
Added 'make' functions to construct containers.
Remove unnecessary casts that causes warnings. (#461)
Added non-const string pointer overload. (#449)
Changed != to < in etl::ipool to get rid of erroneous clang-tidy nullptr dereference warning. (#457)
Added ifdef guard for MSVC pragma (#455)

Various fixes and updates

27 Oct 17:21
Compare
Choose a tag to compare

Updates to etl::delegate. Added more constexpr and set() functions.
Removed conanfile.py. Now controlled by conan repository.
Fixed missing 'typename' keyword in etl::multi_span.
Added missing explicit initialisation from in_place structures.
Fixed hidden parameter warning in unordered_map, unordered_multimap, unordered_set, unordered_multiset.
Disable etl::begin(), etl::end() and etl::size() for STL & >= C++11.
Add available_bytes to byte_stream_reader & byte_stream_writer.
Meson tests & style fix (#447).
Fix constexpr accepts() implementation to be C++11 compliant (#451, #452)
Fix-compiler-error-msvc-16 #454