diff options
| author | swarmer <[email protected]> | 2025-11-20 04:04:45 +0300 |
|---|---|---|
| committer | swarmer <[email protected]> | 2025-11-20 04:23:02 +0300 |
| commit | ddc19a8d822568d58f5e97a0ffcf46a036df256b (patch) | |
| tree | bec44211382998b857f5079c92844520a501e434 /util | |
| parent | 08853b2ac5875a70f83431613fa5738281cb91f4 (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.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; } |
