問題タブ [c++20]

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 に答える
760 参照

c++ - モジュールを複数のファイルに分割する方法

C++ のモジュールについて読んだことがありますが、どうすればよいかよくわかりません。現在のマージされたモジュールの提案を使用して、C++ モジュールを複数のファイルに効果的に分割するにはどうすればよいでしょうか。

エクスポートしたい 2 つのクラスがあるとします。これらの各クラスの実装が別々のファイルにとどまるように、ixx ファイルを分割したいと考えています。

私は次のようなものをイメージしました:

インターフェイス.ixx:

次に、このようにクラスを実装したいと思います。

A.ixx:

B.ixx

私が知りたいこと: モジュールは、ファイルに関係なく、そのインターフェースを認識していますか? そうでない場合、モジュールを複数のファイルに分割する別の方法はありますか? その場合、ばかげているように思えるかもしれませんが、大きなモジュール内に大きなクラスがある場合、物事を分離したままにしておくのは魅力的です。

0 投票する
0 に答える
316 参照

c++ - モジュール TS と純粋仮想クラス

問題

別のモジュールで定義した純粋仮想クラスを使用しようとしていますが、使用しようとすると次の問題が発生します。base class undefined

ボーナス情報

問題を特定するための検索で、名前空間自体にも同様の問題があることがわかりました

コンパイラ

VC++現在、次の追加設定でコンパイラを 使用しています。/std:c++latest /experimental:module /module:exportActiveMacrosこれは、IDE プロジェクト設定で行ったものです。

コード

コードに関しては、次のようになります。

Foo.ixx

アナザーワン.ixx

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

c++ - C++ TS の概念とアクセサー

Concepts TS を使用して、データの制約を支援したいと考えていました。p0121r0で説明したコンセプトについてお話しします。テストには GCC 6.2 を使用しています。

次の簡単なコードを見てください。

インクリメントおよびデクリメント可能なtestプロパティを持つ型を struct Tester に渡す必要があります。良い。

期待どおりに動作します。明らかに、次のものは機能しません。

さて、本当の質問: 次のものが機能しないのはなぜですか?

stdペーパーを掘り下げようとしましたが、std自体にこの可能性がない場合、コンパイラが正しく動作していない場合、この動作が予想されることを理解できません...

または、一種の友情を宣言する必要があるかもしれませんが、それがポイントになる可能性はありますか? これは、概念の制約がアクセサーによって制約される必要がない状況です...

ここで何が起こっているかについてのアイデアはありますか?

編集: 簡単な例で問題を理解するのは必ずしも容易ではありません。これはもう少し複雑ですが、実際のケースにより似ています。

ご覧のとおり、counterload、およびunloadは非公開/保護する必要があり、 Scoperからのみアクセスする必要があることは明らかです。抽象基本クラスを使用すると、 counterunloadのみを制約できますが、 loadはできません (ご覧のとおり、正しい構文を処理する方法がわかりません...)。

これで答えが変わることはないかもしれませんが、問題はおそらく少しきれいになります。

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

c++ - 概念を持つC++エイリアステンプレート(typedef)?

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4553.pdf

gcc6: -fconcepts

Strとして宣言する方法はありますconst String&か?