のは私がデフォルトと専門で、タイプとしてF
を取り、別のテンプレートを作成することができますテンプレートの特殊複数の型名を使用した場合、選択していない
template <typename T>
class F;
があるとしましょう。
template <typename S>
class G;
template <>
template <typename T>
class G <F<T> >
{
};
私はG<F<int> > g_of_f
をインスタンス化できます。コンパイラは専門化をG
と正しく選択しています。
だから私の問題です。私は、リスト内の複数のテンプレートの型名でこれを行いたいと思います。私は
template <typename U, typename S>
class H;
template <typename U>
template <typename T>
class H <U, F<T> >
{
};
をしようとすると、コンパイラは、元のテンプレートH
なく専門を選択しているので、しかし、今私は、H<void, F<int> > h_of_f
をインスタンス化することはできません。
私はg ++ 4.1とg ++ 4.4で同じ動作を観察しました。
私は期待してい道を作業から、コンパイラを防ぐことだG
とH
の違いは何ですか?
大変感謝しています。 –