2

このデータ型のテンプレート定義を書くことは可能ですか?

myclass<int, myclass<int> > data;

2 番目のテンプレート変数は省略可能で、デフォルト値は同じ型です。

明確化

今、私はこの定義を使用します:

class defaultClass { };
template <typename T, typename C=defaultClass>
class myclass { ... };

私はそれを事前に定義したいと思いdefaultClassますmyclass<T>

自動実装プロパティのようなものを実装したいと思います.2番目のパラメータは、ラップされた変数が定義されているコンテキストでなければなりません。コンテキストが省略されている場合は、テンプレート クラス自体によって作成されたオブジェクト内にある必要があります。(別の方法で解決できることはわかっています。これは単なるユースケースです。)

4

1 に答える 1

2

によく似ている

http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern

テンプレートベースタイプでクラス階層を作成することで、必要なことを実行できます。次に、各クラスをそのベースから派生させることができます

template<class T> class base { ... };

class derived: public base<derived> {...};
于 2012-05-20T08:27:38.393 に答える