テンプレート・パラメータ = void* のコンパイラ・バグ - ページ 20

 
pavlick_:

バーチャルでgを通した ボタンランプ。

陳腐化した例

これはポリモーフィズムの例でもパターンの例でもない。bool変数を使う例であって、それ以外には何もない(ハスキーが厚いのは別として)。

テンプレートがポリモーフィズムを 代替できるわけがない。

 
Dmitry Fedoseev:

テンプレートはいかなる場合でもポリモーフィズムを 置き換えることはできません。

私がどこでそうではないと言ったのか?要は、ポリモーフィズムがテンプレートに取って代わろうとしているのです。

 
pavlick_:

また、私がどこでそうではないと述べたのでしょうか?要は、ポリモーフィズムはテンプレートを置き換えようとするものなのです。

テンプレートは、実際には、保存されたデータとIComparable<T>のようないくつかのインターフェイスにのみ必要です。

実質的に性能面でのメリットはない。2番目の例では、すべてが曖昧でないため、コンパイラはすべてをインレイにします。

 
Alexey Navoykov:

テンプレートは、実際には、保存されたデータとIComparable<T>のようないくつかのインターフェイスにのみ必要です。

実質的に性能面でのメリットはない。2番目の例では、すべてが曖昧でないため、コンパイラはすべてをインレイにします。

私の例ではなく、依存関係逆転の典型的な例です。もし、私がコードを書いたら、「それは違う」と言うでしょうか?

テンプレートは松葉杖になってしまいましたね、はい。.よし、今日はもういいや。

 
ところで、void* に戻すと、C++ ではdynamic_cast でも動かない(コンパイルできない)ことに今気づきましたが、メモリ領域への非人間的なポインタがあるだけなので、これは理にかなっています。そのため、明示的にしかキャストできないのです。だから、C++ではvoid*単体では意味がない。 MQLではすべてが違うのだ。しかし、互換性を保つために、void* 型の ポインタに対してdynamic_castdelete を使用することは避けるべきです。