Вариадические шаблоны и новые

У меня есть этот шаблон класса:

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 .

7
задан 18 September 2011 в 19:58
поделиться