我需要将可变参数包转换为c样式void**
数组,每个条目都指向每个打包参数的地址。
template <typename ... ArgsT>
void func (ArgtsT&&... args) {
void* pointers[sizeof...(ArgsT)];
// Now, I want pointers[i] to be (void*)&(ith-args)
// How do implement this?
}
我只能使用C++ 14。
最佳答案
只需通过&
来获取对象的地址即可扩展参数包:
template <typename ... ArgsT>
void func (ArgsT && ... args)
{
void* pointers[sizeof...(ArgsT)] = { &args... };
}
Demo
关于c++ - C++可变参数包装到void **数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60354825/