pthread_t
(由pthread_self()
返回)是一种不透明的类型,但在某些平台上实际上是数字,例如typedef
编辑为unsigned long
。在这些平台上,0
的值是pthread_t
吗?那么-1
呢?
答案 0 :(得分:1)
如果我想要一个pthread_t
或无效的值,我会使用C ++ 1y中的boost::optional<pthread_t>
或std::optional<pthread_t>
。
这有很少的开销(字节),表达我想要的东西(这个值可能是也可能不是pthread_t
),并且不依赖于特定于平台的行为。