我有这个类模板:
template<class... T>
class Test {
std::vector<TestCase*> test_cases;
public:
Test() {
// Here, for each T an instance should be added to test_cases.
test_cases.push_back((new T)...);
}
};
这适用于一个模板参数,但对于多个参数我得到这个错误:
error: too many arguments to function call, expected 1, have 2
如何以new
这种方式使用可变参数模板?什么是正确的语法?
编辑:我认为我的问题不是很清楚。我想要的是这样的:
Test<TestCase1, TestCase2, TestCase3>;
// The constructor will then be:
test_cases.push_back(new TestCase1);
test_cases.push_back(new TestCase2);
test_cases.push_back(new TestCase3);
我的编译器是 clang 163.7.1,带有这个标志:-std=c++0x
.