-1

私は c++ 11 TR の後で c++ に本当に興味を持ち始めており、c++1y を期待しています。なぜ c++ のメタプログラミングがネイティブ機能に追加されないのだろうか。(D 言語には static if があり、D がそれを多用していることはわかっています) (私は D 言語についてあまり知りません。聞いたばかりです。)

C++ のメタプログラミングは何年も使用されており、少なくとも 8 ~ 10 年は使用されています。ただし、メタプログラミングはコードが乱雑になる可能性があります。Boost には MPL がありますが、D 言語ほど強力ではありません。

私は初心者の大学生で、標準についてはコメントできません。少なくとも何人かの人々がこの機能を必要としていると委員会に言っている人がいるのだろうか?

たぶん、多くのメタプログラミングを使用して、Metatrace を見てみましょう (Metatrace は C++ コンパイル時のレイ トレーサーです): https://github.com/phresnel/metatrace

4

2 に答える 2

2

言語に追加のメタプログラミング機能を追加するために検討されている多数の提案があります。「静的if」は、検討されているそのような機能の1つです。これのバリエーションを提案する 2 つの論文は、N3322N3329です。

于 2013-02-20T22:02:13.653 に答える
2

C++ のテンプレート メタプログラミングは、ほとんどが偶然に発見されたことを思い出してください。彼らはチューリング完全性を念頭に置いて設計したのではなく、たまたま起こっただけです。これが、メタプログラミング機能が言語自体に組み込まれていない主な理由です。

static if に関しては、後の標準で提案されていると思います (編集: 提案文書については、他の回答を参照してください)。C++ は進化するにつれて、メタプログラミングのための機能を徐々に採用しています (constexpr を参照)。

于 2013-02-20T22:03:04.020 に答える