diff options
Diffstat (limited to 'util')
| -rw-r--r-- | util/generic/algorithm.h | 6 |
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; } |
