我正在尝试创建一个简单的模板类,其中我创建了一个模板类的对象,提供了一个容器作为模板类型,根据我对模板的理解,这应该没问题,应该像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 */
};
我在这里缺少什么?
答案 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;