let map/multimap/set/multiset return iterator on erase (#463)

Beginning with C++11, erase(iterator) and erase(const_iterator) returns
an iterator following the removed element.
This commit is contained in:
Steffen Zimmermann 2021-11-15 11:26:23 +01:00 committed by GitHub
parent c70db16a20
commit d05bf1b4fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 26 additions and 18 deletions

View File

@ -993,10 +993,10 @@ namespace etl
//*************************************************************************
/// Erases the value at the specified position.
//*************************************************************************
void erase(iterator position)
iterator erase(iterator position)
{
// Remove the node by its key
erase((*position).first);
// Remove the node by its node specified in iterator position
return erase(const_iterator(position));
}
//*************************************************************************

View File

@ -1101,10 +1101,10 @@ namespace etl
//*************************************************************************
/// Erases the value at the specified position.
//*************************************************************************
void erase(iterator position)
iterator erase(iterator position)
{
// Remove the node by its node specified in iterator position
(void)erase(const_iterator(position));
return erase(const_iterator(position));
}
//*************************************************************************

View File

@ -1085,10 +1085,10 @@ namespace etl
//*************************************************************************
/// Erases the value at the specified position.
//*************************************************************************
void erase(iterator position)
iterator erase(iterator position)
{
// Remove the node by its node specified in iterator position
(void)erase(const_iterator(position));
return erase(const_iterator(position));
}
//*************************************************************************

View File

@ -956,10 +956,10 @@ namespace etl
//*************************************************************************
/// Erases the value at the specified position.
//*************************************************************************
void erase(iterator position)
iterator erase(iterator position)
{
// Remove the node by its key
erase((*position));
// Remove the node by its node specified in iterator position
return erase(const_iterator(position));
}
//*************************************************************************

View File

@ -830,8 +830,10 @@ namespace
std::advance(i_compare, 2);
std::advance(i_data, 2);
compare_data.erase(i_compare);
data.erase(i_data);
Compare_Data::iterator i_compare1 = compare_data.erase(i_compare);
Data::iterator i_data1 = data.erase(i_data);
CHECK(i_compare1->second == i_data1->second);
bool isEqual = Check_Equal(data.begin(),
data.end(),

View File

@ -699,8 +699,10 @@ namespace
Compare_Data::iterator i_compare = compare_data.begin();
Data::iterator i_data = data.begin();
compare_data.erase(i_compare);
data.erase(i_data);
Compare_Data::iterator i_compare1 = compare_data.erase(i_compare);
Data::iterator i_data1 = data.erase(i_data);
CHECK(i_compare1->second == i_data1->second);
bool isEqual = Check_Equal(data.begin(),
data.end(),

View File

@ -713,8 +713,10 @@ namespace
Compare_Data::iterator i_compare = compare_data.begin();
Data::iterator i_data = data.begin();
compare_data.erase(i_compare);
data.erase(i_data);
Compare_Data::iterator i_compare1 = compare_data.erase(i_compare);
Data::iterator i_data1 = data.erase(i_data);
CHECK_EQUAL(*i_compare1, *i_data1);
bool isEqual = Check_Equal(data.begin(),
data.end(),

View File

@ -754,8 +754,10 @@ namespace
std::advance(i_compare, 2);
std::advance(i_data, 2);
compare_data.erase(i_compare);
data.erase(i_data);
Compare_Data::iterator i_compare1 = compare_data.erase(i_compare);
Data::iterator i_data1 = data.erase(i_data);
CHECK_EQUAL(*i_compare1, *i_data1);
bool isEqual = Check_Equal(data.begin(),
data.end(),