diff --git a/include/etl/version.h b/include/etl/version.h index a55aef44..47a98a93 100644 --- a/include/etl/version.h +++ b/include/etl/version.h @@ -38,7 +38,7 @@ SOFTWARE. ///\ingroup utilities #define ETL_VERSION_MAJOR 18 -#define ETL_VERSION_MINOR 13 +#define ETL_VERSION_MINOR 14 #define ETL_VERSION_PATCH 0 #define ETL_VERSION ETL_STRINGIFY(ETL_VERSION_MAJOR) "." ETL_STRINGIFY(ETL_VERSION_MINOR) "." ETL_STRINGIFY(ETL_VERSION_PATCH) #define ETL_VERSION_W ETL_STRINGIFY(ETL_VERSION_MAJOR) L"." ETL_STRINGIFY(ETL_VERSION_MINOR) L"." ETL_STRINGIFY(ETL_VERSION_PATCH) diff --git a/library.json b/library.json index 492c728b..43b5118a 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "Embedded Template Library", - "version": "18.13.0", + "version": "18.14.0", "authors": { "name": "John Wellbelove", "email": "john.wellbelove@etlcpp.com" diff --git a/library.properties b/library.properties index e4c6c169..bb380c9a 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=Embedded Template Library -version=18.13.0 +version=18.14.0 author= John Wellbelove maintainer=John Wellbelove license=MIT diff --git a/support/Release notes.txt b/support/Release notes.txt index f28eae34..1d30d3fd 100644 --- a/support/Release notes.txt +++ b/support/Release notes.txt @@ -1,3 +1,7 @@ +=============================================================================== +18.14.0 +Added template deduction guides for array and array_view + =============================================================================== 18.13.0 Added a line coordinate generator using the Bresenham algorithm. diff --git a/test/test_array.cpp b/test/test_array.cpp index 89965a17..5111a087 100644 --- a/test/test_array.cpp +++ b/test/test_array.cpp @@ -57,6 +57,16 @@ namespace CHECK_EQUAL(data.max_size(), SIZE); } + //************************************************************************* + TEST(test_cpp17_deduced_constructor) + { + etl::array data{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + Data compare = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + + bool isEqual = std::equal(data.begin(), data.end(), compare.begin()); + CHECK(isEqual); + } + //************************************************************************* TEST(test_assignment) { diff --git a/test/test_array_view.cpp b/test/test_array_view.cpp index 89750b0a..dfabc9a7 100644 --- a/test/test_array_view.cpp +++ b/test/test_array_view.cpp @@ -247,6 +247,37 @@ namespace CHECK(isEqual); } + //************************************************************************* + TEST(test_cpp17_dedused_constructor) + { + etl::array data{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + + etl::array_view view1{ data }; + etl::array_view view2{ data.begin(), data.end() }; + etl::array_view view3{ data.begin(), data.size() }; + etl::array_view view4{ view1 }; + + int c_array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + etl::array_view view5{ c_array }; + + bool isEqual = false; + + isEqual = std::equal(view1.begin(), view1.end(), data.begin()); + CHECK(isEqual); + + isEqual = std::equal(view2.begin(), view2.end(), data.begin()); + CHECK(isEqual); + + isEqual = std::equal(view3.begin(), view3.end(), data.begin()); + CHECK(isEqual); + + isEqual = std::equal(view4.begin(), view4.end(), data.begin()); + CHECK(isEqual); + + isEqual = std::equal(view5.begin(), view5.end(), c_array); + CHECK(isEqual); + } + //************************************************************************* TEST(test_constructor_range) {