[dawn] Replace `std::remove[_if]` with `std::erase[_if]` in C++20

Bug: 343500108
Change-Id: Ia6be2491d84de0dd2b2559e982e74186dbcd7d84
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/240714
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/src/dawn/native/WaitListEvent.h b/src/dawn/native/WaitListEvent.h
index be50235..756d68c 100644
--- a/src/dawn/native/WaitListEvent.h
+++ b/src/dawn/native/WaitListEvent.h
@@ -189,9 +189,7 @@
             if (event->IsSignaled()) {
                 events[i].isReady = true;
             }
-            event->mSyncWaiters.erase(
-                std::remove(event->mSyncWaiters.begin(), event->mSyncWaiters.end(), &waiter),
-                event->mSyncWaiters.end());
+            std::erase(event->mSyncWaiters, &waiter);
         }
         if (events[i].isReady) {
             bool* isReady = (*(eventAndReadyStateBegin + events[i].origIndex)).second;
diff --git a/src/dawn/tests/end2end/EventTests.cpp b/src/dawn/tests/end2end/EventTests.cpp
index 2bab721..71633d7 100644
--- a/src/dawn/tests/end2end/EventTests.cpp
+++ b/src/dawn/tests/end2end/EventTests.cpp
@@ -28,6 +28,7 @@
 #include <gmock/gmock.h>
 #include <webgpu/webgpu.h>
 
+#include <algorithm>
 #include <atomic>
 #include <chrono>
 #include <cstdint>
@@ -341,10 +342,8 @@
     void RemoveCompletedFutures() {
         size_t oldSize = mFutures.size();
         if (oldSize > 0) {
-            mFutures.erase(
-                std::remove_if(mFutures.begin(), mFutures.end(),
-                               [](const wgpu::FutureWaitInfo& info) { return info.completed; }),
-                mFutures.end());
+            std::erase_if(mFutures,
+                          [](const wgpu::FutureWaitInfo& info) { return info.completed; });
             ASSERT_LT(mFutures.size(), oldSize);
         }
     }