Fix #709 in intrusive_list operator-> (#721)

This commit is contained in:
Chiraffollo 2023-07-01 13:40:07 +02:00 committed by GitHub
parent 96092d841f
commit 7f990d7a76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 61 additions and 1 deletions

View File

@ -440,7 +440,7 @@ namespace etl
pointer operator ->() const
{
return *static_cast<pointer>(p_value);
return static_cast<pointer>(p_value);
}
friend bool operator == (const iterator& lhs, const iterator& rhs)

View File

@ -209,6 +209,21 @@ namespace
CHECK(are_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_iterator_arrow_operator)
{
ItemNDCNode item1("1");
ItemNDCNode item2("2");
DataNDC0 data;
data.push_front(item2);
data.push_front(item1);
auto iter = data.begin();
CHECK(*(iter.operator->()) == item1);
++iter;
CHECK(*(iter.operator->()) == item2);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_const_iterator)
{
@ -219,6 +234,21 @@ namespace
CHECK(are_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_const_iterator_arrow_operator)
{
ItemNDCNode item1("1");
ItemNDCNode item2("2");
DataNDC0 data;
data.push_front(item2);
data.push_front(item1);
auto iter = data.cbegin();
CHECK(*(iter.operator->()) == item1);
++iter;
CHECK(*(iter.operator->()) == item2);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_clear)
{

View File

@ -222,6 +222,21 @@ namespace
CHECK(are_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_iterator_arrow_operator)
{
ItemNDCNode item1("1");
ItemNDCNode item2("2");
DataNDC0 data;
data.push_back(item1);
data.push_back(item2);
auto iter = data.begin();
CHECK(*(iter.operator->()) == item1);
++iter;
CHECK(*(iter.operator->()) == item2);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_const_iterator)
{
@ -234,6 +249,21 @@ namespace
CHECK(are_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_const_iterator_arrow_operator)
{
ItemNDCNode item1("1");
ItemNDCNode item2("2");
DataNDC0 data;
data.push_back(item1);
data.push_back(item2);
auto iter = data.cbegin();
CHECK(*(iter.operator->()) == item1);
++iter;
CHECK(*(iter.operator->()) == item2);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_clear)
{