Вы указываете переменное число аргументов типа Container
, с типами, которые будут использоваться для выведения type_pack
. Например, если вы позвоните:
fn(Container<int>{}, Container<float>{});
type_pack
будет представлять тип float
. Однако, если вы позвоните:
fn(Container<int>{}, Container<float>{}, Container<int>{}, Container<std::string>{});
type_pack
будет представлять пакет параметров float, int, std::string
.
Это поведение хорошо определено стандартом.