Releases: ETLCPP/etl
etl::observer bug fix + member function wrappers
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
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
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
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
#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
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
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.
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
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
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