c++ 14/17的模块提案是否可以(容易地)使用其他本地语言来生成模块?

Will modules proposal for C++14/17 make it possible(easy) for other native languages to be used to generate modules?

本文关键字:模块 其他 语言 易地 是否 c++      更新时间:2023-10-16

这听起来可能很奇怪,但是我正在考虑模块提案,并想知道是否有可能例如,在未来Haskell代码可以以c++可以使用的方式暴露(作为模块)(让我们说T in列表)Haskell映射到vector<T>)。那么,模块是否使这变得容易,可能,或者与当前状态(c++ 11)相比没有任何变化?

这是可能的但我怀疑这会使事情变得更容易。我的理解是,从模块导出的信息的二进制格式将是特定于编译器的,因此它不会提供一个平台上所有编译器共享的通用ABI。使用C作为语言之间的粘合剂的原因是,大多数平台上的C ABI非常简单并且是固定的,因此它不是一个移动的目标。c++实现需要更丰富的ABI(名称混淆格式、异常层次结构、对象布局、虚函数表布局、RTTI表示等),而模块不会改变这些。