c++ - 保证某个函数在销毁前被调用

标签 c++ exception destructor

在编写一些 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/

相关文章:

c++ - 与我正在搜索的结果不同

c++ - 我们什么时候需要定义析构函数?

c++ - 如何检查对象的属性更新是否存在 std::map 键,否则插入一个新键?

c++ - 选择多文件时,OPENFILENAME 返回不正确的 lpstrFile

c# - Exception.Message 与 Exception.ToString()

java - 在 Javadoc 中使用多少 @throws

exception - 如何使用 MYSQLI_REPORT_STRICT 使 mysqli 抛出异常?

c++ - C++ 中的析构函数调用

c++ - 在 C++ 中删除 vector 的单个元素的问题

c++ - 优化掉未使用的参数化字段