Как получить определенный тип из пакета вариативных типов?

Я хочу сделать что-то подобное:

template<typename...T> struct foo
{
  bar<0 /*to index through types in pack*/,T...>::type var1;
  bar<1 /*to index through types in pack*/,T...>::type var2;
 ...
}

Но как бы я определил bar? Никакая техника рекурсии не приходит на ум, чтобы сделать это.

Мне нужна общая техника, чтобы я мог определять любой конкретный тип из пакета типов, а не только два, показанных в примере.

6
задан Rob Kennedy 13 July 2012 в 13:17
поделиться