我知道我可以定义类似
的内容 #define LESS(x, y) if(x < y)
所以我想我能否在c ++中将if
定义为类似python的模板?比如
if x < y: do something
代替if(x < y) do something
答案 0 :(得分:1)
不久之后 - 否。
当预处理器遇到此指令时,它会替换替换代码中其余代码中的任何标识符。这种替换可以是表达,陈述,块或简单的任何东西。预处理器不理解C ++,它只是通过替换来替换任何出现的标识符。
你想要的是这样的
#define if(x):(y) if(x){##y##};
尽管如此,冒号是一个关键字,不能用于标识符,因此它会破坏您的宏定义。没有办法逃脱它。