std :: thread :: id是否有"null"值?

use*_*112 8 c++ multithreading c++11

我想要一个类型的类成员std::thread::id,我也可以使它无效,然后检查它是否已设置.

"取消"此类型然后检查是否已设置的最佳方法是什么?

mel*_*k47 14

根据std :: thread :: id(默认构造函数)上的cppreference:

Default-构造一个新的线程标识符.标识符不代表线程.

因此,您可以存储和比较默认构造std::thread::id.

  • 我认为值得注意的是,它之所以有效,是因为 ids 的“operator==”是这样定义的(*返回:仅当 x 和 y 表示相同的执行线程或 x 和 y 都不表示执行线程时才为 true。* )。另外 - 在线程“t”的某些状态下,“t.get_id() == id()”为真。 (2认同)