summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorswarmer <[email protected]>2025-11-20 04:04:45 +0300
committerswarmer <[email protected]>2025-11-20 04:23:02 +0300
commitddc19a8d822568d58f5e97a0ffcf46a036df256b (patch)
treebec44211382998b857f5079c92844520a501e434 /util
parent08853b2ac5875a70f83431613fa5738281cb91f4 (diff)
EraseNodesIf should use an iterator to the next node if the erase method returns one
commit_hash:4c4690aacc6b7ab9c3ab6ec79bd35c1e2b7fe06e
Diffstat (limited to 'util')
-rw-r--r--util/generic/algorithm.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/util/generic/algorithm.h b/util/generic/algorithm.h
index d1f48c479d9..fcddff61831 100644
--- a/util/generic/algorithm.h
+++ b/util/generic/algorithm.h
@@ -341,7 +341,11 @@ template <class C, class P>
void EraseNodesIf(C& c, P p) {
for (auto iter = c.begin(), last = c.end(); iter != last;) {
if (p(*iter)) {
- c.erase(iter++);
+ if constexpr (std::is_same_v<decltype(iter), decltype(c.erase(iter))>) {
+ iter = c.erase(iter);
+ } else {
+ c.erase(iter++);
+ }
} else {
++iter;
}