1

これは奇妙に聞こえるかもしれませんが、私はモジュールの提案について考えていて、たとえば、将来、Haskell コードを (モジュールとして) C++ が使用できる方法で公開できるかどうか疑問に思いました (Haskell マップの T のリストとしましょう)。へvector<T>)。それで、モジュールはそれを簡単に、可能にしますか、それとも現在の状態 (C++11) と比べて変化はありませんか?

4

1 に答える 1

2

それは可能ですが、物事が簡単になるとは思えません。私の理解では、モジュールからエクスポートされる情報のバイナリ形式はコンパイラ固有であるため、プラットフォーム上のすべてのコンパイラで共有される共通の ABI は提供されません。C が言語間の接着剤として使用される理由は、ほとんどのプラットフォームの C ABI が非常に単純で固定されているため、移動ターゲットではないためです。C++ の実装には、より豊富な ABI (名前マングリング形式、例外階層、オブジェクト レイアウト、vtable レイアウト、RTTI 表現など) が必要であり、モジュールはそれを変更しません。

于 2012-12-21T13:38:34.903 に答える