是否有任何高级语言不支持使用C ++库?

时间:2010-04-21 17:42:15

标签: c++ programming-languages

是否有任何高级语言不支持使用C ++库?

3 个答案:

答案 0 :(得分:7)

使用其他高级语言的C ++库有几个主要障碍:

  • 如果库是OO,则需要能够使用调用语言创建C ++对象 - 这并不容易。

  • C ++实现使用称为“名称修改”的技术来确保类型安全链接。遗憾的是,名称修改没有标准,因此在不同的C ++实现之间甚至不能轻易调用C ++代码。

因此,您的问题的答案是大多数HLL在调用C ++代码时都会遇到问题。他们当然也可能在调用任何其他语言时遇到问题 - 除了ad hoc,特定于平台的语言之外,语言之间实际上没有标准化的二进制接口。

答案 1 :(得分:2)

我无法想到能够直接使用C ++库的任何语言。即使让C ++这样做也可能很棘手(如果使用与您使用的编译器不同的编译器编译库)

当然,如果你编写某种包装器(或者是特定库的包装器,或某种允许你公开特定类型的绑定库),那么任何语言都可以使用C ++库。但直接,原样,没有额外的工作?我不认为除了C ++之外的任何语言都可以做到。

答案 2 :(得分:1)

这是一个反面的答案,但许多流行的高级语言可以通过swig(http://swig.org/)绑定到为它们创建的C ++库代码。