保证在销毁之前调用某个函数

时间:2013-02-27 12:32:20

标签: c++ exception destructor

在编写一些C ++代码时,我得到了一个点,某个结构需要end()函数调用,以保证销毁不会抛出任何异常。

Foo a(x,y)

~a - >可能会在某些非常糟糕的情况下抛出

Foo a(x,y)

a.end() - >也许会抛出

~a保证不会抛出异常

我想知道是否有一种优雅的方法可以强制执行此约束(必须在解构之前调用end)或者至少打印出警告?

问候和感谢

1 个答案:

答案 0 :(得分:4)

如果你需要将东西作为破坏的先决条件发生,那么你应该通过从析构函数中调用它来强制执行。

必须捕获任何异常,not let them leak from the destructor