【发布时间】:2011-06-27 17:56:49
【问题描述】:
考虑以下代码行:
new (p++) T();
如果构造函数T()抛出异常,是否保证p已经自增?
【问题讨论】:
-
这是一个很好的问题,但我希望你永远不会写出这样的代码 :-)
-
@sel:确实,我用
new (p) T(); ++p;替换了它,因为它更容易理解并且不同的语义(no 在抛出异常时递增)更适合我的程序逻辑.
标签: c++ exception constructor side-effects sequence-points