gpt4 book ai didi

c++ - 在任何具有自动存储持续时间的对象被销毁之前调用的回调

转载 作者:行者123 更新时间:2023-11-28 02:07:08 25 4
gpt4 key购买 nike

是否存在注册回调的标准(任何 C++ 标准)方法,在任何具有自动存储持续时间的对象作为正常程序终止的一部分被销毁之前不久被调用?

编辑:

为了更清楚地说明这一点。它是一个多线程应用程序。某些对象可能已将仿函数插入引用它们的线程池(仿函数访问“发起者”对象)。线程池对象是静态的,所以它在 main() 返回后被销毁,所以在所有这些将仿函数插入线程池并引用它们的对象之后已经被摧毁了。线程池在终止时被刷新,因此仿函数在其中有对“发起者”对象的悬空引用。

最佳答案

std::atexit 应该做你想做的事:

Registers the function pointed to by func to be called on normal program termination (via std::exit() or returning from the cpp/language/main function)

http://en.cppreference.com/w/cpp/utility/program/atexit '

您可能还想在 std::terminate_handler 上添加一些东西。

http://en.cppreference.com/w/cpp/error/terminate_handler

关于c++ - 在任何具有自动存储持续时间的对象被销毁之前调用的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37059660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com