|
|
1
2
只需使用一个额外的函数调用来避免整个混乱:
而不是:
|
|
|
2
2
我认为你的方法有两个问题。 你依赖行为
当前标准草案N3126包含5.16/4:
这使我认为上述两个断言应该成立。但是使用GCC4.5.1,第二个失败。我相信这是一个GCC错误。
此外,您还依赖编译器来延长临时对象的生命周期。
更新: 根据12.2/5,在这两种情况下,临时物体的寿命都应该延长,1和2。例外列表中的所有要点在这里似乎都不适用。在这方面,海湾合作委员会似乎又有问题。 解决问题的一个简单方法是:
或者,您可以使用boost::scoped_ptr而不是向量。 |
|
3
0
XValue安全性的问题可以通过为表达式内部的使用提供一个替代方案来解决。问题完全不同,现在我们 不要 需要XValue结果,可以使用函数:
现在类型必须是默认的可构造类型,并且始终构造虚拟对象。对副本进行条件评估。我不认为我真的想处理做了太多这件事的代码。 Boost Optional 有点帮助;它只需要可复制构造的t:
可选的是有用的,但是它与C++ 0x结合有一些重叠。重新实现并不难。
这个
|
|
|
metrallador10 · 哪种代码更好?效率与代码可读性 1 年前 |
|
|
Justin Xu · 使用return if语句进行重构验证 2 年前 |
|
|
Cino · 如何以体面的方式处理Python异常? 2 年前 |
|
|
SAI BENDE · 如何在多个html文件中使用单个导航栏 2 年前 |
|
|
fstab · 对正常控制流程使用例外情况是一种不鼓励还是不鼓励的做法? 12 年前 |
|
|
SwampYeti · 在CSS中拉伸小背景图像 12 年前 |