C++ 可变参数模板:它的 typeid,优化方法

C++ variadic template: typeid of it, way to optimize

所以,我学习了可变参数模板及其用法。现在我在下面制作了该代码。问题是是否存在其他一些方法来获取没有任何数组或 inilialized_list?

的“Params”类型
template<class Type, class... Params>
void InsertInVector(std::vector<Type>& v, const Params&... params)
{
    const auto variadic = {typeid(Params).name()...};
    if (typeid(Type).name() != *variadic.begin())
    {
        throw std::runtime_error("TYPES ARE NOT THE SAME!");
        return;
    }
    v.insert(v.end(), {params...});
}

在 C++17 及更高版本中,您可以这样做:

template<class Type, class... Params>
void InsertInVector(std::vector<Type>& v, const Params&... params) {
  static_assert((std::is_convertible_v<Params, Type> && ...));
  v.insert(v.end(), {params});
}