Map structs and tuples to initializer lists in C++ overload resolution. (#6620)

When performing C++ overload resolution with an argument that is of
Carbon struct or tuple type, form a braced initializer list as the
placeholder argument. Note that this only affects overload resolution;
no new support for actually converting structs or tuples to C++ types is
added. In particular, while this does allow an empty class to be
initialized from `{}`, it does not allow a non-empty C++ class to be
initialized from a struct, as that is not yet supported in general.

---------

Co-authored-by: Carbon Infra Bot <carbon-external-infra@google.com>
Co-authored-by: Geoff Romer <gromer@google.com>
This commit is contained in:
Richard Smith
2026-01-21 19:10:10 +00:00
committed by GitHub
co-authored by Carbon Infra Bot Geoff Romer
parent f3f498498f
commit 05ea0e77d9
5 changed files with 1764 additions and 45 deletions
File diff suppressed because it is too large Load Diff