Я хотел бы использовать вариативные шаблоны С++ 11 для достижения обобщенной функции "случайного выбора".
Что-то вроде этого...
template <typename T>
T randomPicker(T one, T two, T three)
{
int pick = 3 * (rand() / double(RAND_MAX));
switch (pick)
{
case 0:
return one;
case 1:
return two;
default:
return three;
}
}
... кроме обобщенного для принятия любого количества параметров (каждый из того же типа, что и выше, хотя прием любого типа в качестве параметра и преобразование выбранного в некоторый определенный тип T по возврату также будет приемлемым).
Я понимаю идею использования рекурсии шаблонов для достижения таких вещей, как typafe printf и т.д. Могут ли вариационные шаблоны использоваться для создания описанной выше функции? Любые советы оценены!