容器作为模板参数传递给class-template

时间:2011-12-22 08:16:32

标签: c++ templates

我正在尝试创建一个简单的模板类,其中我创建了一个模板类的对象,提供了一个容器作为模板类型,根据我对模板的理解,这应该没问题,应该像int或char一样处理,但它总是给我一个错误说:

"template argument 1 is invalid"

以下是我遇到此错误的行:

templateTest<(std::list<int>)> testingTheTemplate;

这是模板类的骨架

template <class testType> class templateTest 
{
   /* use some iterators and print test data here */
};

我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

您在课程定义后忘记了分号:

template <class testType> class templateTest 
{

}; // <- semicolon

另外,将您的实例化声明为:

templateTest<std::list<int> > testingTheTemplate;
                       // ^^^ required space (C++03)

没有括号,请注意其间的空格。

在C ++ 11之前,<<>>被视为运算符。你必须在这种情况下将它们分开。

答案 1 :(得分:1)

应该是
C ++中的templateTest<std::list<int> > testingTheTemplate; 03 或C ++ 11中的templateTest<std::list<int>> testingTheTemplate;