#include <iostream>
#include <vector>
#include <typeinfo>
#include <typeindex>
template <typename... Types>
void Fill(std::vector<std::type_index>& vec)
{
vec.insert(vec.end(), {typeid(Types)...});
}
int main()
{
std::vector<std::type_index> vec;
Fill<char, int, float>(vec);
for (const auto& t : vec)
{
std::cout << t.name() << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dHlwZWluZm8+CiNpbmNsdWRlIDx0eXBlaW5kZXg+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHlwZXM+CnZvaWQgRmlsbChzdGQ6OnZlY3RvcjxzdGQ6OnR5cGVfaW5kZXg+JiB2ZWMpCnsKICAgIHZlYy5pbnNlcnQodmVjLmVuZCgpLCB7dHlwZWlkKFR5cGVzKS4uLn0pOwp9CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6dHlwZV9pbmRleD4gdmVjOwogICAgCglGaWxsPGNoYXIsIGludCwgZmxvYXQ+KHZlYyk7Cglmb3IgKGNvbnN0IGF1dG8mIHQgOiB2ZWMpCgl7CgkJc3RkOjpjb3V0IDw8IHQubmFtZSgpIDw8IHN0ZDo6ZW5kbDsKCX0KfQ==