8

このパターンの目的は何ですか? それはなんと呼ばれていますか?初めて見たときはとても奇妙に見えましたが、今では何度も見ています。

template<typename Derived>
struct Base {
  //...
};

struct Example : Base<Example> {
  //...
};
4

3 に答える 3

10

これはCuriously Recurring Templateパターンと呼ばれ、静的ポリモーフィズムを可能にします。

特定のクラスに機能を追加したいが、ユーティリティを一般的なケースで使用できるようにしたい場合に便利です。ユーティリティをテンプレート パラメータに依存させて使用することで、両方を実現できます。

于 2010-10-27T05:31:03.270 に答える
6

Curiously Recurring Template Pattern、または CRTP と呼んでいます。

于 2010-10-27T05:30:59.173 に答える
6

CRTPを参照していると思います。こちらも参照

于 2010-10-27T05:31:07.177 に答える