C++テンプレートクラスのネスト

2373 ワード

テンプレートクラスのネスト
関数テンプレートを使用すると、パラメータが構造体、クラスなどのカスタムデータ型の場合、カスタムデータ型を3世代目で具体化することで問題を解決する必要があります.では、クラステンプレートのメンバーオブジェクトのデータ型もカスタムデータ型ですね.
実際には、クラスにメンバーまたはメソッドのタイプが含まれている限り、オブジェクトをインスタンス化するときにデータ型を宣言します.
では、クラスのメンバーもテンプレートクラスですね.次のようなネストが表示されます.
template<class T>
class Nm
{
     
	T a;
};

template<class T>
class Mn
{
     
	T find()
	{
     
		T p;
		return p;
	}
};

template<class T>
void test()
{
     
	Nm<Mn<Nm<Mn<Mn<T>>>>> p;
}

Vectorコンテナで多次元マトリクスを作成するのと似ています