1

如何从参数包创建数组?

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

1 回答 1

2

你可能会这样做:

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

演示

但你的功能很奇怪。 std::tuple可能更合适,或者将输入参数更改为std::initializer_list<T>or std::array<T, N>

于 2021-06-10T13:39:03.740 回答