Расширения пакетов Variadic Templates

В выступлении Андрея на GoingNative 2012 он говорит о шаблонах с переменными параметрами и объясняет в одном месте с помощью примера ниже, как работают расширения пакетов параметров. Поскольку я новичок в этой теме, мне было довольно сложно проследить, как работает каждый случай, не мог бы кто-нибудь объяснить, как расширение работает при каждом вызове функции gun ?

template void fun(Ts... vs) {
    gun(A::hun(vs)...);
    gun(A::hun(vs...));
    gun(A::hun(vs)...);
}

10
задан Xeo 7 February 2012 в 19:49
поделиться