首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C++中实现无操作宏(或模板)?

如何在C++中实现无操作宏(或模板)?
EN

Stack Overflow用户
提问于 2009-08-20 14:33:24
回答 9查看 22.6K关注 0票数 30

如何在C++中实现无操作宏?

代码语言:javascript
运行
复制
#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“。

EN

Stack Overflow用户

发布于 2012-10-23 16:55:27

我认为结合前面的变种是一个很好的解决方案:

代码语言:javascript
运行
复制
#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

好消息是,这两个代码只是在块内部不同,这意味着它们在外部的行为对于解析器来说是完全相同的。

票数 0
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1306611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档