У меня есть этот шаблон класса:
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
.