1

次の行に沿って宣言されたクラスがあります

template<int a, int b>
class C {
public:
    array[a][b];
}

そして、次のような関数の引数として使用したい:

bool DoSomeTests(C &c1, C &c2);

しかし、コンパイルすると、「クラス テンプレートの使用にはテンプレート引数リストが必要です」と表示されます。私は試した

template<int a, int b>
bool DoSomeTests(C &c1, C &c2);

しかし、同じエラーが発生します。どうすればこれを修正できますか?

4

1 に答える 1

6

Cの宣言で、クラス テンプレートに引数を指定する必要がありますDoSomeTests

template<int a, int b>
bool DoSomeTests(C<a, b> &c1, C<a, b> &c2);

クラス テンプレートCと関数テンプレートの両方DoSomeTestsが 2 つのテンプレート パラメーターを取りintますが、それらを関数テンプレートから にマップしたいという事実はC、コンパイラによって推測できません。

于 2010-05-03T20:12:12.903 に答える