問題タブ [c++-modules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
184 参照

c++ - P1881 の C++ モジュールベースのエポックと潜在的な #pragma ベースのエポック

P1881提案では、C++ コードのエポック (モジュール レベル) の概念が提案されています。このような機能により、下位互換性を損なうことなく、モジュールのレベルで C++ の構文と C++ の動作をカスタマイズできます。より精巧な動機が提案に示されています。

提案からの暗黙の変換の例

バージョン 1 : エポックなし、すべて正常にコンパイル

バージョン 2 : epoch 2023(暗黙的な変換を無効にすることを前提として)、コードの形式が正しくありません:

これは間違いなく興味深い提案であり、単にコンパイル スイッチを指定するのとは大きく異なります-std=c++XXX

しかし、私は疑問に思います:

  • P1881 では、エポックはモジュールレベルのスイッチとして定義されています。利便性以外に、モジュールレベルでなければならない理由はありますか? なぜ翻訳単位レベルではないのですか?
  • その結果、この動作#pragmaは、モジュールベースの提案と比較して、コンパイラサポートを提供するか、または (実装または使用の観点から) 深刻な技術的困難をもたらす 's を介してシームレスに達成できますか?

次のようなことを言ってください。

モジュールベースの実装を対象とする提案されたメカニズムを読みました。ただし、それが modules でなければならない理由がわかりません。


関連: CppCon 2019 での Vittorio Romeo のライトニング トーク (P1881 提案の著者)