【发布时间】:2021-08-27 12:39:50
【问题描述】:
如何从参数包创建数组?
template<typename T, typename... Tpack>
void covert(Tpack ...pack){
T *arr = new T[???]; //TODO: how to get Tpack size?
// TODO: how to fill array?
}
【问题讨论】:
-
sizeof...(Tpack)? -
如何用什么填充数组?您创建了一个
T数组,但pack可以有各种不同的类型。 -
Tpack应该是一组类型,还是真的应该是模板参数列表中的T... Tpack? -
这听起来像是一个 XY 问题:您实际上想要实现什么?也许有更好的方法来解决它......
-
您可以使用
sizeof...(pack)来获取包中元素的数量,但我会完全忘记数组,只使用std::vector<T> arr{pack...};。
标签: c++ arrays parameter-pack