gpt4 book ai didi

c++ - C++可变参数包装到void **数组

转载 作者:行者123 更新时间:2023-12-02 10:20:43 36 4
gpt4 key购买 nike

我需要将可变参数包转换为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/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com