在pthread_t为数字的平台上,0保证是无效值吗?

时间:2013-08-23 18:37:23

标签: c++ pthreads

pthread_t(由pthread_self()返回)是一种不透明的类型,但在某些平台上实际上是数字,例如typedef编辑为unsigned long。在这些平台上,0的值是pthread_t吗?那么-1呢?

1 个答案:

答案 0 :(得分:1)

如果我想要一个pthread_t或无效的值,我会使用C ++ 1y中的boost::optional<pthread_t>std::optional<pthread_t>

这有很少的开销(字节),表达我想要的东西(这个值可能是也可能不是pthread_t),并且不依赖于特定于平台的行为。