我想使用 boost::asio 但我不希望 boost 抛出异常,因为在我的环境中不能引发异常。
我遇到过 BOOST_NO_EXCEPTIONS
但是 documentation 表示 throw_exception 的调用者可以假定此函数永远不会返回。
但是用户提供的函数怎么可能不返回呢?我需要在此处插入什么替换功能?如果 boost 代码想抛出异常,我是否必须终止进程?
最佳答案
那么,您想要在错误情况下做什么? BOOST_NO_EXCEPTION 不会神奇地使 Boost 源代码使用替代机制将错误传播回调用者。因此,您要么将错误打印到 stderr 并死去,要么一直 longjmp 到顶部——泄漏当前调用堆栈上的函数可能分配的任何资源。
关于c++ - 在 BOOST 中禁用异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1853148/