c++ - std::thread 没有异常(exception)?

标签 c++ multithreading exception c++11

我想知道是否有一种方法可以毫无异常(exception)地使用 std::thread,如果没有,我可以使用哪些替代方案?

实际上我的目标是 windows 和 linux 桌面,但这可能会在未来扩展。

编辑:仅使用编译器选项来禁用异常不是一个可接受的解决方案。必须以一种或另一种方式处理错误。

问题是我的代码中使用的唯一异常是那些处理 std::thread 错误的异常。我想摆脱那些以获得无异常代码

edit2:我找到了 tinythread++ 库,它似乎很容易在需要时进行修改并且可以正常工作。

最佳答案

您可以禁用 STL 的异常,但对于每个编译器来说都是不同的。当然,由于标准实际上说必须抛出一些异常,所以每当您执行会抛出异常的操作时,您都会得到未定义的行为。

在 gcc 中,您可以使用 -fno-exceptions 禁用异常

在 MSVC 中:Can I disable exceptions in STL?

关于c++ - std::thread 没有异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162287/

相关文章:

c++ - 基本 C++ : for-each loop

c++ - 添加新阵列会改变以前的阵列吗?

java - 线程中的最终字段语义

Python:如果默认值设置为抛出异常的函数,Dict get 方法总是抛出异常

c++ - 在非静态数据成员上使用 SFINAE?

c++ - 我能知道输入参数是引用(and)还是右值引用(&&)吗?

Python:运行一个没有效果的语句只是为了检查是否抛出异常?

java - 将数据导入 mongodb 时出现 JSONParseException

Java - 停止 hibernate 线程

java - Java中监视器重新获得的顺序