【发布时间】:2014-03-20 07:30:59
【问题描述】:
如果可能的话,我知道以下做法绝对是一种糟糕的做法,但我想知道这是否可行。
问题如下:是否有可能在 C++ 中(并且以某种方式编译器不会抛出任何警告)对返回 void 的函数执行无用的算术运算。
std::vector<int> v;
int i = 42 + v.resize(42);
/* How to transform the last line to execute resize and to have i = 42 */
我知道这很愚蠢,但这不是问题......
【问题讨论】:
-
没有测试,没有提交作为答案,但也许... int i = 42 + (v.resize(42) || 0);
-
@isick C++ 不是 JavaScript ;-P
-
哈哈,显然我已经不在我的元素了。应该把它留给 C++ 专家。很高兴得到答复
-
这很愚蠢。
void()不为零! -
你为什么要问?它是生成的代码,还是在某个宏内部?
标签: c++ c++11 void arithmetic-expressions