はじめに Swift 5.9 から C++ interoperability という機能が入りました。 これにより、C++ と Swift に互換性ができ、直接呼び出せるようになりました! 詳細は WWDC2023 の動画を見てると面白いと思います。 では、何が変わったのかを見ていきましょう! 実装 まずは従来の方法を紹介します。 (Xcode でアプリ開発をしている前提で話します) Swift 5.9 未満で C++ を扱う 今までは3通りの方法がありました。(他にあればコメントくださいmm) C でブリッジする(C++ の機能 extern "C" を使う) Objective-C++ でブリッジする SPM から module.modulemap で公開する 1つずつ見ていきましょう。 ① C でブリッジする(C++ の機能 extern "C" を使う) 前提として Swift は
![[Swift] Swift 5.9 と C++ の互換性 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1998b73d93e5dd3afc55fd3b85efdaf80f0f8f1d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JTVCU3dpZnQlNUQlMjBTd2lmdCUyMDUuOSUyMCVFMyU4MSVBOCUyMEMlMkIlMkIlMjAlRTMlODElQUUlRTQlQkElOTIlRTYlOEYlOUIlRTYlODAlQTcmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTliODUzMmU1YzU5ZGViYzJmZWIxMDcyMTliOTdlZWZi%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwaGNyYW5lJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzImdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02YWZmZThlNjNkOTA0OTUxNjMzMzkzNjBkMzRjNTAxNA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D1b9caa889057a0115c9289580adb8a5a)