13

C ++でマルチメソッドを実装する方法に関する多くの記事を読みました:

  1. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1529.html
  2. http://www.codeproject.com/KB/recipes/mmcppfcs.aspx
  3. http://lambda-the-ultimate.org/node/2590
  4. http://parasol.tamu.edu/people/peterp/omm/

c++ にマルチメソッドがないのはなぜですか?

c++ 標準でサポートされないのはなぜですか?

4

3 に答える 3

35

馬の口から真っ直ぐに:

「私はそのアイデアが好きだったので、残念ながらマルチメソッドを拒否しましたが、それを受け入れるための受け入れ可能な形式を見つけることができませんでした.」

Bjarne Stroustrup、C++ の設計と進化(p297)

以降:

「マルチメソッドは、C++ の興味深い what-if の 1 つです。当時、私はそれらを十分に設計および実装できたでしょうか? -方法?」

(p298f)

一般に、特定の C++ 機能が実装された理由、実装されなかった理由、または現在のように実装された理由を知りたいという衝動を感じたときはいつでも、その機能が標準化よりも前のものである場合は、D&E を読みたいと思うでしょう。

于 2011-01-30T18:38:13.480 に答える
15

Bjarne が何度も指摘しているように、人々が C++ を批判するとき、通常は次のようになります。小さくてシンプルです。ああ、あなたがそれに取り組んでいる間に、私はあなたが追加すべきキラー機能の本当に素晴らしいアイデアも思いつきました!」

于 2011-01-30T18:48:10.630 に答える
10

できたからといって、できなかったことが問題になるわけではありません。C++ に対する批判の 1 つは、「Stroustrup は、誰もが聞いたことのあるすべてを取り込んで、それを含めようとした」というものです。

さらに、Raymond Chen が言うように、「すべての機能は -100 ポイントから始まります」。つまり、C++ にこれらの機能がない理由を尋ねる前に、それらが必要な理由を詳細に説明する必要があります。そうしないと、関連するコストのために、フィーチャは負の領域にとどまります。

于 2011-01-30T18:36:30.357 に答える