As outlined in my previous post, the @cxx-interop-workgroup would like to add initial set of documentation pages that describe how Swift and C++ interoperability works. The PR with the initial set of documentation pages is now ready for review!
We have recently requested that the Language Steering Group graduates C++ interoperability out of the experimental status, and makes it a feature in Swift 5.9. The documentation pages have been written with that in mind, as if C++ interoperability is a feature in the upcoming Swift 5.9 release. We anticipate that LSG will announce their decision very soon. Our intention is to merge this PR with the initial set of docs right after the LSG announces their decision related to the inclusion C++ interoperability as a feature in Swift 5.9 (provided they approve the request).
We intend to add several additional sections to the documentation after the initial PR, expanding on topics like CMake project setup, using Swift standard library types in C++, and covering more advanced concepts related to both sides of interoperability. We also would like to keep refining and polishing the documentation throughout the summer, until Swift 5.9 is released. We will get help from some of the folks who edit and maintain The Swift Programming Language book as well, who are going to make some editorial changes before Swift 5.9 is released.
For ease of preview, I have attached the three documentation pages here as rendered PDFs. Note that their relative links that point within swift.org website don't work in the PDF form.
Preview of the main guidance page :
Preview_Swift.org - Mix Swift and C++.pdf
Preview of the status page:
Preview_Swift.org - Supported Features and Limitations of C++ Interoperability.pdf
Preview of the project & build setup page:
Preview_Swift.org - Setting Up Mixed-Language Swift and C++ Project.pdf