end()
函数调用,以保证销毁不会抛出任何异常。
Foo a(x,y)
~a
- >可能会在某些非常糟糕的情况下抛出
Foo a(x,y)
a.end()
- >也许会抛出
~a
保证不会抛出异常
我想知道是否有一种优雅的方法可以强制执行此约束(必须在解构之前调用end)或者至少打印出警告?
问候和感谢
答案 0 :(得分:4)
如果你需要将东西作为破坏的先决条件发生,那么你应该通过从析构函数中调用它来强制执行。
但必须捕获任何异常,not let them leak from the destructor。