[superproject] Roll cobalt [aggregation_procedures] Fix C++20-incompatible instances of aggregate initialization

In C++20, types that declare or delete any constructors are no longer
aggregates, breaking compilation of many existing uses of aggregate
initialization.

Fixes include:
- removing defaultings or deletions of only the default constructor
- removing defaultings of copy/move constructors
- adding constructors that accept the arguments passed to existing aggregate
  initialization sites, leaving the type no longer an aggregate
- removing a set of clearly-marked-as-boiler-plate copy/move/default constructor
  declarations

Also adds default member initializers for trivially default constructible
members that can now be left uninitialized by construction of the form `Foo f;`.
go/totw/182

b/235981902 tracks the work, but I don't want updates posted for all of the CLs.
go/cpp20-cleanups#non-aggregate has some more background info on the breakages
and our approach to fixes.

Original-Bug: b/235981902
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/768795
Original-Revision: 142b90f5844f99bf035087bc143f4f76cb4cba2a
GitOrigin-RevId: 1aab3a2f92963cd83be15261f9548ee0babd2218
Roller-URL: https://ci.chromium.org/b/8795934861437259921
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I2f5ce4e73cbefe3ed69291a2221c88facfc480af
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/769750
1 file changed
tree: 39b43a27839c6e40ebad705f27d6c2f7a89abcc1
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. products/
  7. scripts/
  8. sdk/
  9. src/
  10. third_party/
  11. tools/
  12. zircon/
  13. .clang-format
  14. .clang-tidy
  15. .editorconfig
  16. .git-blame-ignore-revs
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. .style.yapf
  22. analysis_options.yaml
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. fuchsia.code-workspace
  28. LICENSE
  29. OWNERS
  30. PATENTS
  31. pyrightconfig.json
  32. README.md
  33. 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.