включая шаблон класса на карте - PullRequest
1 голос
/ 16 сентября 2011

У меня есть шаблон класса Test, и я пытаюсь определить следующую функцию в отдельном заголовочном файле:

template<typename T>
T dtest(const int, std::map<int, Test<T> >& y);

, но я получаю следующую ошибку:

«Тест» не был объявлен в этой области

недопустимый аргумент шаблона 2

недопустимый аргумент шаблона 4

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Учитывая, что вы утверждаете, что заголовок, который определяет Test<T>, включен в заголовок, который объявляет dtest, я собираюсь предположить, что у вас есть циклическое включение: Заголовок Test<T> также включает заголовок dtest.

0 голосов
/ 17 сентября 2011
#include <map>
template<class T>
class Test{};

template<typename T>
T dtest(const int, std::map<int, Test<T> >& y);

Это прекрасно компилируется, если вы включаете определение Test и map; код в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...