問題タブ [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.
c++ - P1881 の C++ モジュールベースのエポックと潜在的な #pragma ベースのエポック
P1881提案では、C++ コードのエポック (モジュール レベル) の概念が提案されています。このような機能により、下位互換性を損なうことなく、モジュールのレベルで C++ の構文と C++ の動作をカスタマイズできます。より精巧な動機が提案に示されています。
提案からの暗黙の変換の例
バージョン 1 : エポックなし、すべて正常にコンパイル
バージョン 2 : epoch 2023
(暗黙的な変換を無効にすることを前提として)、コードの形式が正しくありません:
これは間違いなく興味深い提案であり、単にコンパイル スイッチを指定するのとは大きく異なります-std=c++XXX
。
しかし、私は疑問に思います:
- P1881 では、エポックはモジュールレベルのスイッチとして定義されています。利便性以外に、モジュールレベルでなければならない理由はありますか? なぜ翻訳単位レベルではないのですか?
- その結果、この動作
#pragma
は、モジュールベースの提案と比較して、コンパイラサポートを提供するか、または (実装または使用の観点から) 深刻な技術的困難をもたらす 's を介してシームレスに達成できますか?
次のようなことを言ってください。
モジュールベースの実装を対象とする提案されたメカニズムを読みました。ただし、それが modules でなければならない理由がわかりません。