微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

std::thread::join 在不可连接时是否抛出 std::invalid_argument ?

如何解决std::thread::join 在不可连接时是否抛出 std::invalid_argument ?

根据 STL 文档,当 std::thread::join 不可连接时抛出 std::invalid_argument,我不容易理解它的设计原理。

问题:

  1. std::thread::join 没有输入参数,抛出 std::invalid_argument 异常的目的是什么?
  2. 当 std::thread::join 不可连接时,调用 std::terminate 不是更好吗?

解决方法

当 std::thread::join 不可连接时会抛出 std::invalid_argument 吗?

是的。

std::thread::join 没有输入参数,抛出 std::invalid_argument 异常的目的是什么?

如果您愿意,有一个隐式参数:*this

当 std::thread::join 不可连接时,调用 std::terminate 不是更好吗?

如果您没有捕获异常,std::terminate 被调用。

Demo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。