[stdcompat] Fix std::erase template deduction error

https://reviews.llvm.org/D149543 changed headers such that
vector now transitively includes string. This caused std::string's
std::erase to become a candidate for overload resolution of
std::erase. This was using the template directly and not relying
on argument deduction to weed the std::erase for string out. This
substitution was an error outside of the immediate context of
std::erase so it was not subject to SFINAE.

Instead, just use the left hand side of the assignment to do normal
template argument deduction to choose the correct std::erase.

Fixed: 127378
Change-Id: I214c66d913cc12e6dc8b6ae2de614dbcdc9f8565
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/858236
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Reviewed-by: Roland McGrath <mcgrathr@google.com>
Fuchsia-Auto-Submit: Alex Brachet <abrachet@google.com>
2 files changed
tree: 9d300c2228f669900b84de11d032e75a93e6d58e
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. infra/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. .ignore
  23. .style.yapf
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyrightconfig.json
  34. README.md
  35. rustfmt.toml
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.