gpt4 book ai didi

c++ - 取决于整数的宏使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:12:17 25 4
gpt4 key购买 nike

我必须在函数内多次使用宏,需要使用的宏取决于我传递给函数的数字。

例如

  function(int number) { 
switch(number) {
case 0: doStuff(MACRO0); break;
case 1: doStuff(MACRO1); break;
}
}

问题是:对于同一个宏的每个 switch 语句,我有很多事情要做。有没有比在 switch 语句中包含所有这些东西更优雅的解决方案?就像将宏本身传递给函数一样?我读过有关 eval() 的 C++ 方法,但我觉得它们不合适。另一种方法是确定宏扩展的内容,但我还没有找到这方面的任何信息。

哦,其实是 openGL。

最佳答案

我会使用函数对象

struct Method1 {
void operator()() { ... }
};

template<typename Method>
void function(Method m) {
...
m();
...
}

int main() {
function(Method1());
}

关于c++ - 取决于整数的宏使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933020/

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