1
47
是的,但你可能会收到另一个警告。
这样做的标准方法是:
从技术上讲,这仍然可以加载
完全地 也就是说,我们现在拥有的是:
这接近于一个解决方案:
但失败的原因是:
解决办法是简单地:
这保证了没有任何操作。 编辑: 上面确实保证没有效果,但我没有测试就发布了。在测试时,它会再次生成警告,至少在MSVC 2010中是这样,因为 价值 提醒:我们想“使用”一个表达式,而不是对它进行求值。怎么能做到?这样地:
这有一个简单的问题,就像上次一样(实际上更糟),就是
我们又回到了上次的效果(没有),但这次
这个解决方案实际上还有一个问题(在上一个联合国解决方案中也存在,但没有被注意到),在这个例子中出现了这个问题:
以确保我们真的以零结束。 This trick brought to you by Johannes .
另外,如前所述,如果以上还不够,一个足够愚蠢的编译器可能会潜在地“加载”表达式
|
2
2
好吧,不看编译器的源代码是不可能百分之百确定的,但是如果这能在现代编译器中生成任何代码,我会非常惊讶。 最后,如果您担心任何特定的实例,那么您可以随时查看生成的程序集代码。 |