如何在C++中实现无操作宏?
#include <iostream>   
#ifdef NOOP       
    #define conditional_noop(x) what goes here?   
#else       
    #define conditional_noop(x) std::cout << (x)   
#endif   
int main() {       
    conditional_noop(123);   
}我希望在定义NOOP时不执行任何操作,而在未定义NOOP时打印"123“。
发布于 2012-10-23 16:55:27
我认为结合前面的变种是一个很好的解决方案:
#ifdef NOOP
    static inline void conditional_noop(int x) do {} while(0)
#else 
    static inline void conditional_noop(int x) do { std::cout << x; } while(0)
#endif好消息是,这两个代码只是在块内部不同,这意味着它们在外部的行为对于解析器来说是完全相同的。
https://stackoverflow.com/questions/1306611
复制相似问题