如何在C ++中#define成为类python

时间:2013-04-18 09:44:20

标签: python c++ if-statement c-preprocessor

我知道我可以定义类似

的内容

#define LESS(x, y) if(x < y)

所以我想我能否在c ++中将if定义为类似python的模板?比如

if x < y: do something代替if(x < y) do something

1 个答案:

答案 0 :(得分:1)

不久之后 -

来自cplusplus.com

  

当预处理器遇到此指令时,它会替换替换代码中其余代码中的任何标识符。这种替换可以是表达,陈述,块或简单的任何东西。预处理器不理解C ++,它只是通过替换来替换任何出现的标识符。

你想要的是这样的

#define if(x):(y) if(x){##y##};

尽管如此,冒号是一个关键字,不能用于标识符,因此它会破坏您的宏定义。没有办法逃脱它。