2

我知道我可以定义类似的东西

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

所以我想知道我可以if在 c++ 中定义为类似 python 的模板吗?如

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

4

1 回答 1

1

简而言之 -

来自cplusplus.com

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

你想要的是这样的

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

不过,冒号是关键字,不能用作标识符,因此会破坏您的宏定义。没有办法逃脱它。

于 2013-04-18T10:31:22.557 回答