Merge branch 'feature/new-equal-algorithm-variant' into development

This commit is contained in:
John Wellbelove 2020-10-29 09:29:23 +00:00
commit e317cf9d1f
2 changed files with 30 additions and 0 deletions

View File

@ -789,6 +789,15 @@ namespace etl
return (memcmp(first1, first2, sizeof(value_t) * (last1 - first1)) == 0);
}
template <typename TIterator1, typename TIterator2>
ETL_NODISCARD
bool equal(TIterator1 first1, TIterator1 last1, TIterator2 first2, TIterator2 last2)
{
return (etl::distance(first1, last1) == etl::distance(first2, last2)) &&
etl::equal(first1, last1, first2);
}
#else
//***************************************************************************
// equal
@ -798,6 +807,23 @@ namespace etl
{
return std::equal(first1, last1, first2);
}
#if ETL_CPP14_SUPPORTED
template <typename TIterator1, typename TIterator2>
ETL_NODISCARD
bool equal(TIterator1 first1, TIterator1 last1, TIterator2 first2, TIterator2 last2)
{
return std::equal(first1, last1, first2, last2);
}
#else
template <typename TIterator1, typename TIterator2>
ETL_NODISCARD
bool equal(TIterator1 first1, TIterator1 last1, TIterator2 first2, TIterator2 last2)
{
return (etl::distance(first1, last1) == etl::distance(first2, last2)) &&
etl::equal(first1, last1, first2);
}
#endif
#endif
#if ETL_NOT_USING_STL

View File

@ -703,6 +703,10 @@ namespace
{
CHECK(etl::equal(std::begin(dataV), std::end(dataV), std::begin(dataL)));
CHECK(!etl::equal(std::begin(dataSL), std::end(dataSL), std::begin(dataL)));
int small[] = { dataS[0] };
CHECK(etl::equal(std::begin(dataV), std::end(dataV), std::begin(dataL), std::end(dataL)));
CHECK(!etl::equal(std::begin(dataS), std::end(dataS), std::begin(small), std::end(small)));
}
//*************************************************************************