Added template deduction guides for array and array_view

This commit is contained in:
John Wellbelove 2020-09-10 13:07:04 +01:00
parent df5dee6609
commit 14d1b96c64
6 changed files with 48 additions and 3 deletions

View File

@ -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)

View File

@ -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"

View File

@ -1,5 +1,5 @@
name=Embedded Template Library
version=18.13.0
version=18.14.0
author= John Wellbelove <john.wellbelove@etlcpp.com>
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
license=MIT

View File

@ -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.

View File

@ -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)
{

View File

@ -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)
{