私が達成しようとしているのは、 "柔軟な"最初の引数を持つテンプレートです(おそらく配列要素のようなものです。第1引数:std::vector
)と第2引数。その2番目の議論では、数値(例:std::array
のsizeパラメータのような)、または一般的なクラスのための特殊化が必要です。クラスFoo
についてはオブジェクトやintに特化できるテンプレートを書くにはN
、私は現在
template <typename T, template <typename> typename Y > class Foo{};
を持っている理由は、それは、私は、私は専門を書くことができると思うです:
template<typename T> class Foo<T, int N>{};
と、struct Bar{}
与えられ、
template<typename T> class Foo<T, Bar>{};
しかし、コンパイラ(C++ 11、ideone.com)は、エラー指定された行に "error: template argument 2 is invalid
"と入力します。
おそらく、私は未定義の宣言を間違って形成しました。それともこれも可能ですか?
あなたが問題を引き起こしているコードを投稿する必要がありますが、それはあなたが後にしているものをあなたの質問から非常に明確ではありません... – Nim
また、あなたはタイプミスを持っているものをコンパイルしないでください。 – NathanOliver
実際、専門化はコンパイルされません。それは私の問題です! –