gpt4 book ai didi

C++ 包装变量参数宏

转载 作者:行者123 更新时间:2023-11-30 03:03:35 25 4
gpt4 key购买 nike

我想做的例子:

#define macro(a) foo( _blah_, *(dword*)(&a) );
#define macro(a,b) foo( _blah_, *(dword*)(&a) , *(dword*)(&b) );
#define macro(a,b,c) foo( _blah_, *(dword*)(&a) , *(dword*)(&b) , *(dword*)(&c) );

但是当然有变量号。的论据。我基本上想单独包装每个参数,而不是将所有参数作为一个 __VA_ARGS__ block 传递。

最佳答案

作为任何其他理智的人,我建议您放弃宏,尤其是使用 C++11 的可变参数模板时:

template<class T>
dword& make_dword(T& v){
return *reinterpret_cast<dword*>(&v);
}

template<class... Args>
void bar(Args&... args){
foo(_blah_, make_dword(args)...);
}

这应该可以解决问题。

我需要指出的是那些 reinterpret_cast 看起来很可疑,不过...

关于C++ 包装变量参数宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9271768/

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