From: Aaron Puchert Date: Sat, 8 Apr 2023 23:11:38 +0200 Subject: [PATCH 02/20] Use explicit `this->` for dependent base members Might have accidentally worked with implicit `this` back in the day, but since base classes can be specialized, lookup can only happen after instantiation, which prevents implicit `this` in referring to its members with all conformant compilers. --- Source/tmModel/tmPtrClasses/tmArray.h | 16 ++++++++-------- Source/tmModel/tmPtrClasses/tmDpptrArray.h | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Source/tmModel/tmPtrClasses/tmArray.h b/Source/tmModel/tmPtrClasses/tmArray.h index 3782b98..f7f2547 100644 --- a/Source/tmModel/tmPtrClasses/tmArray.h +++ b/Source/tmModel/tmPtrClasses/tmArray.h @@ -171,7 +171,7 @@ Add an element to the beginning of the list template void tmArray::push_front(const T& t) { - insert(this->begin(), t); + this->insert(this->begin(), t); } @@ -182,7 +182,7 @@ Add an element to the list if it isn't already there template void tmArray::union_with(const T& t) { - if (find(this->begin(), this->end(), t) == this->end()) push_back(t); + if (find(this->begin(), this->end(), t) == this->end()) this->push_back(t); } @@ -206,7 +206,7 @@ Remove an item from a list given its index template tmArray& tmArray::RemoveItemAt(std::size_t n) { - erase(this->begin() + ptrdiff_t(n) - 1); + this->erase(this->begin() + ptrdiff_t(n) - 1); return *this; } @@ -217,7 +217,7 @@ Remove an item from a list given its value template void tmArray::erase_remove(const T& t) { - erase(remove(this->begin(), this->end(), t), this->end()); + this->erase(remove(this->begin(), this->end(), t), this->end()); } @@ -240,7 +240,7 @@ template tmArray& tmArray::InsertItemAt(std::size_t n, const T& t) { TMASSERT(n > 0); // 1-based indexing - insert(this->begin() + ptrdiff_t(n) - 1, t); + this->insert(this->begin() + ptrdiff_t(n) - 1, t); return *this; } @@ -293,7 +293,7 @@ void tmArray::rotate_left() { if (this->empty()) return; T t = this->front(); - erase(this->begin()); + this->erase(this->begin()); this->push_back(t); } @@ -306,7 +306,7 @@ void tmArray::rotate_right() { if (this->empty()) return; T t = this->back(); - erase(this->rbegin()); + this->erase(this->rbegin()); this->push_front(t); } @@ -331,7 +331,7 @@ Append all elements of another list template void tmArray::merge_with(const tmArray& aList) { - insert(this->end(), aList.begin(), aList.end()); + this->insert(this->end(), aList.begin(), aList.end()); } diff --git a/Source/tmModel/tmPtrClasses/tmDpptrArray.h b/Source/tmModel/tmPtrClasses/tmDpptrArray.h index c30ca8e..f01b8db 100644 --- a/Source/tmModel/tmPtrClasses/tmDpptrArray.h +++ b/Source/tmModel/tmPtrClasses/tmDpptrArray.h @@ -240,7 +240,7 @@ referencing it template void tmDpptrArray::union_with(T* pt) { - if (!contains(pt)) push_back(pt); + if (!this->contains(pt)) push_back(pt); } @@ -250,7 +250,7 @@ Remove all copies of this item from the list. template void tmDpptrArray::erase_remove(T* pt) { - if (contains(pt)) { + if (this->contains(pt)) { tmArray::erase_remove(pt); DstRemoveMeAsDpptrSrc(pt); };