summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
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;
}