一种可以与C++无缝互动的语言?

Mai*_*ein 6 c++ programming-languages

我喜欢尝试许多不同的编程语言,但我真的永远不会在实际项目中使用它们,因为我需要的所有重要的库都是用C++编写的.

通常我必须编写一个非常耗时的C接口,所以我想知道是否存在可以无缝调用任何C++代码的编程语言?

小智 5

C++中的许多函数都是在头文件中定义的,并且希望使用它们编译到每个应用程序中.它偶尔会发生在C语言中,但对于C++来说,它更为常见,特别是因为模板化类的类成员无法提前为每个可能的模板实例化提供:有无数的.

如果与C++的兼容性需要一个完整的C++解析器和编译器,那么你真的没有一种不同的语言,你就得到了带扩展的C++.即使其中一个扩展是使代码的一部分看起来不像C++,它增加了大量的复杂性,几乎没有什么好处.

如果您不需要与C++完全无缝兼容,那么某些语言的兼容性有限.有D 与C++接口,描述什么有效,什么不有,为什么不.


cub*_*l42 2

没有一种语言可以与 C++ 无缝互操作。C 接口是个好主意。重要的是不要从模块中导出所有/许多函数,因为正如您所注意到的那样,这很耗时。每次专注于解决一个问题,并将解决该问题的函数导出到 C 中。

另一方面,如果您确实需要向其他语言公开许多函数甚至类,则可以使用 SWIG。阅读它的文档,您会注意到在创建包装代码时需要处理多少问题。那是因为任何两种语言都是不同的,你无法改变这一点。解决这个问题的方法是使用两种语言最大的通用接口——C。