我必须在函数内多次使用宏,需要使用的宏取决于我传递给函数的数字。
例如
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/