任何与 C++ 互操作的语言?

Any Language to interop with C++?

有没有可以直接与 C/C++ 互操作的现代语言?我的意思是直接像 Java 对 Kotlin 所做的那样。一种可以利用 C/C++ 生态系统而不会对性能造成重大影响的语言。

我喜欢 C/C++ 感兴趣的领域,但不喜欢语言。

存在 C 和 C++ 的交集,它是两种语言的子集。可以从任何一种语言调用在此子集中编写的函数声明。

C是事实上的互操作语言,除了C++,大多数其他支持语言互操作的高级语言都特别支持C。而C以外的语言与C以外的语言的互操作,往往都是通过这两种语言的C接口。

由于 C++ 对 C 接口的高度支持,这种互操作性通常也可以在 C++ 中利用,但接口仅限于公共子集中的功能。

你特别提到了Java。它是与 C 具有互操作性层的语言示例。


支持一般进程间通信的所有语言(例如套接字)通常可以通过该通信与用任何语言编写的其他进程进行互操作。


Can I use C++ library from Java ...

如果库有一个用 C 的可互操作子集编写的接口,那么是的。如果还没有wrapper接口,可以写一个。

... and expect to have the same performance as with C/C++?

外语接口可能有一些开销,Java 方面本身可能涉及在使用本机库时不存在的开销。这个开销是否很大,你可以通过测量来发现。例如,我希望它小于套接字通信的开销。

此外,程序间优化可能无法实现。在这方面类似于在本机 C 或 C++ 中使用共享库。