私はこのようなことをしたい:
template<template<int d, class>
class container,
int dim = d, typename content_data_type>
class MyClass {
};
私のコンパイラは、「d」が次の外部で定義されていないため、これは不可能であると言っています。
template<int d, class> class container
これを行う別の方法はありますか?
このトピックについてご協力いただきありがとうございます。
アップデート:
@ Rook: 特殊化で後で「dim」および「content_data_type」パラメータにアクセスしたい
例えば
一般クラス:
template<template<int d, class>
class container>
class MyClass {
};
仕様 クラス:
template<>
class MyClass<vec> {
vec c; // Error: vec needs template parameters
};
テンプレートクラス「vec」をテンプレートパラメーターなしで使用したため、これによりエラーが発生しました。たとえば、使用するときに、コンパイラーがテンプレートパラメーターを推測することを期待していました
MyClass<vec<3, float> >
変数「c」は型を持つ必要があります
vec<3, float>
これが機能しなかったため、次のように特殊化クラスでアクセスできる 2 つの明示的なテンプレート パラメーター "dim" と "content_data_type" を作成できると考えました。
template<template<int d, class t>
class container,
int dim = d, typename content_data_type = t>
class MyClass<vec> {
vec<dim, content_data_type> c;
};
...そして、最初の質問で十分に具体的でなかったことをもう一度申し訳ありません:)