包括地图中的类模板

时间:2011-09-16 19:47:32

标签: c++ templates

我有一个模板类Test,我试图在一个单独的头文件中定义以下函数:

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

但是我收到以下错误:

  

'测试'未在此范围内声明

     

模板参数2无效

     

模板参数4无效

2 个答案:

答案 0 :(得分:1)

鉴于你断言定义Test<T>的标题包含在声明dtest的标题中,我猜你有一个循环包含:Test<T>标题也是包括dtest标题。

答案 1 :(得分:0)

#include <map>
template<class T>
class Test{};

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

只要包含Test和map的定义,这就编译好了;代码很好。