Skip to content

Commit

Permalink
Added support for 20bit types for integral_limits
Browse files Browse the repository at this point in the history
  • Loading branch information
John Wellbelove committed Jul 30, 2024
1 parent bf56dcf commit 75f2e7b
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 4 deletions.
9 changes: 5 additions & 4 deletions include/etl/integral_limits.h
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ namespace etl
ETL_CONSTANT bool statics_char32_t<T>::is_signed;
#endif

#ifdef ETL_20_BIT
#if ETL_USING_20BIT_TYPES
template <typename T = void>
struct statics___int20
{
Expand Down Expand Up @@ -604,11 +604,12 @@ template <typename T = void>
struct integral_limits<unsigned long long> : public private_integral_limits::statics_unsigned_long_long<>
{
};
#ifdef ETL_20_BIT
//***************************************************************************

#if ETL_USING_20BIT_TYPES
//***************************************************************************
///\ingroup integral_limits
//***************************************************************************
template <>
template <>
struct integral_limits<__int20> : public private_integral_limits::statics___int20<>
{
};
Expand Down
11 changes: 11 additions & 0 deletions include/etl/platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,17 @@ SOFTWARE.

#define ETL_8BIT_SUPPORT (CHAR_BIT == 8) // Deprecated

//*************************************
// Some targets support 20bit types.
#if defined(ETL_USE_20BIT_TYPES)
#define ETL_USING_20BIT_TYPES 1
#define ETL_NOT_USING_20BIT_TYPES 0
#else
#define ETL_USING_20BIT_TYPES 0
#define ETL_NOT_USING_20BIT_TYPES 1
#endif


//*************************************
// Helper macro for ETL_NO_64BIT_TYPES.
#if defined(ETL_NO_64BIT_TYPES)
Expand Down
36 changes: 36 additions & 0 deletions support/Release notes.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,40 @@
===============================================================================
20.39.0

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

Pull Requests
#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.

===============================================================================
20.38.17

#895 Removed std algorithm calls from algorithm.h
Expand Down

0 comments on commit 75f2e7b

Please sign in to comment.