0

だから私は次のようなものを持っています:

template<int X>
class foo {

char a[X];

...

}

そして、次のような関数を含む別のクラス「バー」があります。

void execute(foo &b); 

これは foo の char 配列でタスクを実行する必要がありますが、テンプレート クラスであるというエラーが表示されますが、次のようなものを使用しています。

void execute(foo<int> &b); 

エラーも出ます。エラーが発生しないのは、次のような値を静的に与える場合だけであるため、正確に渡す方法がわかりません。

void execute(foo<4> &b);

どうもありがとう!

4

1 に答える 1

5

非型テンプレート パラメーターは、コンパイル時に認識されている必要があります。関数の正しい呼び出しは次のようになります

template<int N>
void execute(foo<N>& b);

// call
foo<4> b;
execute(b);
于 2013-11-05T06:46:24.817 に答える