将CUDA内核调用作为参数宏传给预处理器宏时,预处理器宏中的参数数量不正确

我有下面的宏

#define TIMEIT( variable, body ) \
variable = omp_get_wtime(); \
body; \
variable = omp_get_wtime() - variable;

我用它来简单地对代码段进行计时。但是,宏调用对逗号敏感,CUDA内核调用(使用triple chevron语法)会使预处理器认为传递给宏的参数超过2个。

有什么办法可以解决这个问题吗?

转载请注明出处:http://www.932981.com/article/20230526/1169242.html