在编写一些 C++ 代码时,我遇到了一个问题,即某个结构需要 end()
函数调用,以确保破坏不会抛出任何异常。
Foo a(x,y)
~a
-> 在某些非常糟糕的情况下可能会抛出
Foo a(x,y)
a.end()
-> 可能抛出
~a
保证不抛出异常
我想知道是否有一种优雅的方法可以通过编译器强制执行此约束(结束必须在解构之前调用)或者至少打印出警告?
问候和感谢
最佳答案
如果您需要某些东西作为销毁的先决条件发生,那么您应该通过从析构函数中调用它来强制执行。
但是您必须捕获任何异常,并且not let them leak from the destructor .
关于c++ - 保证某个函数在销毁前被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15112219/