diff --git a/include/etl/private/bitset_legacy.h b/include/etl/private/bitset_legacy.h index 593f415b..a1f40737 100644 --- a/include/etl/private/bitset_legacy.h +++ b/include/etl/private/bitset_legacy.h @@ -148,6 +148,8 @@ namespace etl public: + typedef size_t size_type; + typedef typename etl::make_unsigned::type element_type; typedef element_type element_t; // Backward compatibility diff --git a/include/etl/private/bitset_new.h b/include/etl/private/bitset_new.h index 323a4e47..2fcbc990 100644 --- a/include/etl/private/bitset_new.h +++ b/include/etl/private/bitset_new.h @@ -171,6 +171,7 @@ namespace etl typedef TElement element_type; typedef TElement* pointer; typedef const TElement* const_pointer; + typedef size_t size_type; static ETL_CONSTANT size_t npos = etl::integral_limits::max; static ETL_CONSTANT size_t Bits_Per_Element = etl::integral_limits::bits; @@ -1937,6 +1938,8 @@ namespace etl typedef typename etl::private_bitset::bitset_common::span_type span_type; typedef typename etl::private_bitset::bitset_common::const_span_type const_span_type; + + using etl::private_bitset::bitset_common::Bits_Per_Element; using etl::private_bitset::bitset_common::All_Set_Element; using etl::private_bitset::bitset_common::All_Clear_Element; @@ -2826,6 +2829,8 @@ namespace etl { public: + typedef size_t size_type; + typedef etl::private_bitset::bitset_common<0U, unsigned char>::element_type element_type; typedef etl::private_bitset::bitset_common<0U, unsigned char>::span_type span_type; typedef etl::private_bitset::bitset_common<0U, unsigned char>::const_span_type const_span_type; @@ -2850,6 +2855,8 @@ namespace etl ETL_STATIC_ASSERT(etl::is_unsigned::value, "The element type must be unsigned"); + typedef size_t size_type; + typedef typename etl::private_bitset::bitset_common::element_type element_type; typedef typename etl::private_bitset::bitset_common::span_type span_type; typedef typename etl::private_bitset::bitset_common::const_span_type const_span_type; diff --git a/test/test_bitset_legacy.cpp b/test/test_bitset_legacy.cpp index a64722ba..88bb3017 100644 --- a/test/test_bitset_legacy.cpp +++ b/test/test_bitset_legacy.cpp @@ -1493,6 +1493,14 @@ namespace CHECK_EQUAL("...*..*...**.*...*.*.**..****...", stdtext.c_str()); } + //************************************************************************* + TEST(test_global_size) + { + etl::bitset<32> b(0x12345678UL); + + CHECK_EQUAL(32, ETL_OR_STD::size(b)); + } + //************************************************************************* TEST(test_issue_497_count_inverted_bits) { diff --git a/test/test_bitset_new_default_element_type.cpp b/test/test_bitset_new_default_element_type.cpp index 4e8b5164..682cd2b8 100644 --- a/test/test_bitset_new_default_element_type.cpp +++ b/test/test_bitset_new_default_element_type.cpp @@ -2722,5 +2722,13 @@ namespace CHECK_EQUAL(test_bit(6), t6); CHECK_EQUAL(test_bit(7), t7); } + + //************************************************************************* + TEST(test_global_size) + { + etl::bitset<32> b(0x12345678UL); + + CHECK_EQUAL(32, ETL_OR_STD::size(b)); + } }; } diff --git a/test/test_bitset_new_explicit_single_element_type.cpp b/test/test_bitset_new_explicit_single_element_type.cpp index 82badbb0..f6db16a9 100644 --- a/test/test_bitset_new_explicit_single_element_type.cpp +++ b/test/test_bitset_new_explicit_single_element_type.cpp @@ -2815,5 +2815,13 @@ namespace CHECK_EQUAL(test_bit(6), t6); CHECK_EQUAL(test_bit(7), t7); } + + //************************************************************************* + TEST(test_global_size) + { + etl::bitset<32, uint32_t> b(0x12345678UL); + + CHECK_EQUAL(32, ETL_OR_STD::size(b)); + } }; } diff --git a/test/test_bitset_new_ext_default_element_type.cpp b/test/test_bitset_new_ext_default_element_type.cpp index 64100f3e..d944087d 100644 --- a/test/test_bitset_new_ext_default_element_type.cpp +++ b/test/test_bitset_new_ext_default_element_type.cpp @@ -2471,5 +2471,13 @@ namespace CHECK_EQUAL(test_bit(6), t6); CHECK_EQUAL(test_bit(7), t7); } + + //************************************************************************* + TEST(test_global_size) + { + etl::bitset<32> b(0x12345678UL); + + CHECK_EQUAL(32, ETL_OR_STD::size(b)); + } }; } diff --git a/test/test_bitset_new_ext_explicit_single_element_type.cpp b/test/test_bitset_new_ext_explicit_single_element_type.cpp index 43343448..e34ffe66 100644 --- a/test/test_bitset_new_ext_explicit_single_element_type.cpp +++ b/test/test_bitset_new_ext_explicit_single_element_type.cpp @@ -2619,5 +2619,13 @@ namespace CHECK_EQUAL(test_bit(6), t6); CHECK_EQUAL(test_bit(7), t7); } + + //************************************************************************* + TEST(test_global_size) + { + etl::bitset<32, uint32_t> b(0x12345678UL); + + CHECK_EQUAL(32, ETL_OR_STD::size(b)); + } }; }