問題タブ [f-bounded-polymorphism]
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++ - 「奇妙に繰り返されるテンプレートパターン」の実用的な使い方
「 Curiously Recurring Template Pattern 」の実用的な用途は何ですか? 一般的に示されている「カウントされたクラス」の例は、私にとって説得力のある例ではありません。
c++ - もう 1 つの奇妙な繰り返しテンプレート パターン
質問は簡単です。上記のコードをコンパイルするにはどうすればよいですか? その意図は、ノードに他のノードを割り当てる可能性を与えることです (そしてデフォルトのアロケータを提供することです)。
c++ - 不思議なことに繰り返されるテンプレート?
Curiously Recurring Templates が非常にうまく機能するという問題がありますが、簡単なテストを通過することさえできません。
これにより、エラーが発生します
何が欠けていますか。
g++ 4.2.1 でコンパイル
c++ - 不思議なことに繰り返されるテンプレートと共分散の導出
派生クラスのクローンを作成する基本クラスがあるとします。
私は不思議なことに繰り返されるテンプレート パターンを使用して実装されている一連の派生クラスを持っています。
そして、私はそれからさらに次のように導き出そうとします:
次のようなコンパイル エラーが発生します。
これはおそらく、コンパイラが CRTP をインスタンス化するときに Derived の継承ツリーを完全に認識していないことが原因であると認識しています。さらに、戻り値の型 (T*) を (Base*) に置き換えてもコンパイルされます。ただし、上記のセマンティクスを保持する回避策があるかどうかを知りたいです。
scala - Scala で F-bounded ポリモーフィズムを型メンバーとしてモデル化しようとしています
メソッドが同種で、同じ型の値を返すことができる型を書きたいと思いました。
残念ながら、コメントアウトされた行の呼び出しtester
は次のエラーで失敗します (Scala 2.10):
基本的に、私はその理由について混乱しており、 にX
統一Y
していませんFoo
。明らかに型メンバーが問題を複雑にしていますが、その境界は尊重されているようです。
より高いレベルでは、普及型パラメーターのオーバーヘッドなしで、F-bounded ポリモーフィズムと同等のものを取得する軽量な方法を探しています。これはほとんど機能しているように見えますが、強制X
およびY
統合する注釈を追加する必要がありFoo
ます。
scala - scala f-bounded types の説明
いくつかの例を見た後、F-Bounded ポリモーフィックがもたらすものを理解できていないと言わざるを得ません。
scala school ( https://twitter.github.io/scala_school/advanced-types.html#fbounded )の例を使用するには
彼らは、サブクラスがサブタイプを返すことができるように、F-Bounded 型が必要であると説明しています。したがって、彼らは次のようにします。
しかし、次のようなものを使用できる場合、この種のタイプを使用することの利点はわかりません。
どんな説明でも大歓迎です
ありがとう
scala - オブジェクトの Scala F-bounded ポリモーフィズム
次の F-bounded ポリモーフィズムを Scala で記述できません。なんで?
これを表現してコンパイルするにはどうすればよいですか?
java - 既存の型階層に新しいメソッドを追加するために F-Bounded Type が使用される理由
Javaジェネリックを使用して式の問題を解決することについて、次の論文を読んでいました。
http://www.daimi.au.dk/~madst/ecoop04/main.pdf
著者は、左右のパラメーターが EvalExp 型であることを保証するために F-Bounded 型を使用する最初のソリューションを提案します。
F-Bounded 型を使用せずに問題を解決しようとしたところ、次のようなコードになりました。
このソリューションは式の問題を解決しますか (新しいデータと操作に拡張可能ですか)?
コード レベルの拡張性を満たしていますか (詳細については論文を参照してください)。
上記のソリューションには、論文で提案されている F-Bounded ソリューションよりも不利な点がありますか?
どんな説明でも大歓迎です。
編集: コンパイルの問題を修正するためにコードを更新しました。
scala - F-bounded 型のコレクションに対する関数の適用
私はより多くの Scala を学ぼうとしており、F-bounded 型について説明しているこの興味深い記事に出くわしました。そのような型を持つ値のコレクションの操作に関する最後の議論に特に興味がありました。
簡単な例を次に示します。
ブログ投稿に示されているように、存在量指定子を使用して、 と のリストを呼び出すことができますme2
。C1
C2
今、私はリストのタイプについていくつかのバリエーションを試してきました。経験豊富な誰かが、私が見逃している微妙な点を指摘してくれることを期待していました。
以下は期待どおりに機能します
次のように、_.me
のインスタンスを含むリストを呼び出して示すこともできます。AbsClass[A] forSome {type A}
しかし、同じマップをl
もう一度適用しようとすると、型情報が失われ、List[Any]
. ここで型を維持する方法はありますか?