如何将 boost::this_thread::get_id() 转换为 int
how could I convert boost::this_thread::get_id() to int?
void Test
{
boost::thread::id id0 = boost::this_thread::get_id();
int iThreadId = id0; // ***here, how could I cast 'id0' to 'iThreadId'***
}
有人可以告诉我怎么做吗?
std::hash<>
专门用于std::hash<std::thread::id
- http://en.cppreference.com/w/cpp/thread/thread/id/hash
很可能,boost::thread::id
也有同样的情况。
所以你可以使用
std::hash<boost::thread::id>(thread_id);
以获得积分表示。当然,(可悲的是)由于这应该用作哈希,因此可能无法保证生成的哈希对于每个线程都是唯一的。您仍然可以很好地查找(版本)库的文档。
但是,仅用于例如.key unordered_map
,您不必担心。
或者,如果您希望它与 c++11 之前的线程解决方案"API 兼容",并且您不介意使用依赖于实现的功能,则可以使用 std::thread::native_handle
.这很可能与您的"旧"线程 API 公开的类型相同。(std::thread::native_handle_type
是实现定义的)
相关文章:
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 将 int 数组转换为 std::vector<int*>
- 如何转换 int 变量并附加到常量 wchar_t*
- 类型转换<int>的舍入问题
- 在Objective-C中调用sqlite3数据库时,如何调用和转换int/NSNumber
- 转换 int -> 无符号长 长 是否由标准定义
- 简单的 int 到字符串转换..int to const char* 无效
- 如何将转换 int 除法键入为浮点数
- C++类型转换 int * 到类
- 预期的类型说明符,并且无法在初始化时转换“int*”
- 转换int并将其与char*连接
- 字符串流在转换int型时添加新行
- 转换int为字符串/char c++ /Arduino
- c# P-Invoke:如何转换INT fun(BYTE *bStream, UINT16 *nCount, const
- 类型转换(int**)和int(*)的区别
- 从"int"到"nodeType"的无效转换<int>
- 从无符号int构造对强制转换int的引用