mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 08:54:47 +01:00
Remove artificial version ceiling on C++ interop. (#2365)
Remove a confusing mention of a specific version of C++ (C++17) from the interoperability goals. Expand the content of the goals to make it clear that we have a moving and ongoing target of C++ as it continues to evolve. Also emphasize that we will prioritize among the different features during Carbon's development based on how they impact the overall project. However, this intends to preserve the fact that there may exist long-tail or corner-case features in C++ that never end up with high quality or exhaustive support in our interop story simply because their impact on Carbon users is sufficiently small that it doesn't justify the cost. Fixes #1587
This commit is contained in:
@@ -358,9 +358,12 @@ Corner cases of C++ will not receive equal support to common cases: the
|
||||
complexity of supporting any given construct must be balanced by the real world
|
||||
need for that support. For example:
|
||||
|
||||
- Interoperability will target C++17. Any interoperability support for future
|
||||
versions of C++, including features such as C++20 modules, will be based on
|
||||
a cost-benefit analysis. Exhaustive support should not be assumed.
|
||||
- Long-term, we expect interoperability will target all of C++, including new
|
||||
features as they are added, standardized, implemented, and adopted across
|
||||
the industry. The priority of _individual_ features will reflect how widely
|
||||
they are used in practice and how any gap impacts users trying to adopt
|
||||
Carbon. Exhaustive, high-quality support of the long-tail or corner cases of
|
||||
C++ features should not be assumed.
|
||||
|
||||
- Support will be focused on idiomatic code, interfaces, and patterns used in
|
||||
widespread open source libraries or by other key constituencies. C++ code
|
||||
|
||||
Reference in New Issue
Block a user