创建C风格的数组形式参数包

Create C-style array form parameter pack

如何从参数包创建数组?

    template<typename T, typename... Tpack>
    void covert(Tpack ...pack){
        T *arr = new T[???]; //TODO: how to get Tpack size?
        // TODO: how to fill array?
    }

你可能会:

template<typename T, typename... Tpack>
void covert(Tpack ...pack){
    T *arr = new T[sizeof...(Tpack)]{pack...};
    // ...
    delete[] arr;
}

Demo

但你的函数按原样很奇怪。 std::tuple 可能更合适,或将输入参数更改为 std::initializer_list<T>std::array<T, N>.