我必须在函数内多次使用宏,并且需要使用的宏取决于我传入函数的数字.
例如
function(int number) {
switch(number) {
case 0: doStuff(MACRO0); break;
case 1: doStuff(MACRO1); break;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:每个switch语句都有很多东西要用同一个宏做.是否有更优雅的解决方案,然后在switch语句中包含所有内容?就像将宏本身传递给函数一样?我在C++中已经阅读了类似eval()的方法,但他们对我感觉不对.另一种方法可以确定宏扩展的内容,但我没有找到任何关于此的信息.
哦,实际上是openGL.
我会使用一个函数对象
struct Method1 {
void operator()() { ... }
};
template<typename Method>
void function(Method m) {
...
m();
...
}
int main() {
function(Method1());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |