【发布时间】:2015-02-04 21:51:17
【问题描述】:
是否有使用 C 预处理器检查表达式是否为 lvalue (meaning I can do &expression) 的宏?
例子:如果有一些int a;,我调用IS_LVALUE(a),它应该评估为1,而IS_LVALUE(5)应该评估为0,所以我可以做#if IS_LVALUE(...) == 1
【问题讨论】:
-
只是好奇,你为什么需要这个?
-
我正在尝试使用预处理器宏创建lamba 表达式。传递参数时,我需要知道它是否是左值(然后我创建一个指针)(然后我只是传递值)。见stackoverflow.com/a/28332447/773690
-
为什么不直接使用
C++11lambdas? -
@RPGillespie 并破坏了乐趣? 没有。
标签: c c-preprocessor