Как использовать шаблоны классов в качестве аргументов функции? - PullRequest
1 голос
/ 04 мая 2010

У меня объявлен класс по типу

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);

но я получаю ту же ошибку. Как я могу это исправить?

1 Ответ

6 голосов
/ 04 мая 2010

Вам необходимо предоставить аргументы для шаблона класса C в объявлении DoSomeTests:

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

И шаблон класса C, и шаблон вашей функции DoSomeTests принимают два параметра шаблона int, но тот факт, что вы хотите отобразить их из шаблона функции в C, не может быть выведен компилятором.

...