6

再帰的なテンプレート型を取得する方法はありますか? 基礎となるストレージ戦略を指定したいコンテナーがあります。ただし、内側のテンプレートは外側のテンプレートの型を使用する必要があるため、型定義でループが発生します。これは指定できません。

私が欲しいものについて:

template<typename C>
struct inner {
    C * object[16];
};

template<typename T, typename Inner>
struct container {
    T value;
    Inner<container> holder;
};

C++11 ソリューションは問題ありません (ただし、私はまだ gcc 4.6.3 を使用しています)。

4

2 に答える 2

5

Innerテンプレート化されたクラスであることをコンパイラに伝える必要があります。

template<typename T, template<typename> class Inner>
struct container {
    T value;
    Inner<container> holder;
};
于 2013-07-30T12:51:17.833 に答える