相关疑难解决方法(0)

如何在c ++ 11中获取整数线程id

c ++ 11有可能获得当前的线程ID,但它不能转换为整数类型:

cout<<std::this_thread::get_id()<<endl;
Run Code Online (Sandbox Code Playgroud)

输出:139918771783456

cout<<(uint64_t)std::this_thread::get_id()<<endl;
Run Code Online (Sandbox Code Playgroud)

错误:从类型'std :: thread :: id'到类型'uint64_t'的无效强制转换与其他类型相同:从类型'std :: thread :: id'到类型'uint32_t'的无效强制转换

我真的不想做指针转换来获取整数线程ID.是否有一些合理的方法(标准因为我希望它是便携式的)来做到这一点?

c++ multithreading c++11

76
推荐指数
9
解决办法
8万
查看次数

支持完全C++ 11的Windows C++编译器(应该与Qt一起使用)

哪个C++编译器目前在Windows平台上有完整的 C++ 11支持?

Microsoft编译器目前没有完整的C++ 11支持(并且不会很快添加它).
MinGW g ++(来自mingw.org)不支持std::thread开箱即用.它也无法编译Qt 4源(在构建QtGuid4.dll时耗尽内存,已知的解决方法对我不起作用).
我已经浪费了好几天试图让Windows上的clang工作,设法编译它,但无法启用c ++ 11支持,因为它需要libstdc ++(我认为)当时没有移植到Windows平台.Qt 4也不支持它.

那里还有什么?我已经为C++ 03工作了很长时间,我想给新功能一个旋转,但我真的不想要一个不完全支持的工具(这会增加额外的头痛,同时写一个代码)或链接库时可能耗尽内存(在8GB系统上).

我正在使用Windows 7 64位,虽然有64位支持会很好,但我最感兴趣的是32位应用程序,因此生成64位可执行文件的能力是可选的.

有什么建议?

c++ windows qt c++11

51
推荐指数
2
解决办法
4万
查看次数

C++ 11'native_handle'不是'std :: this_thread'的成员

在以下代码段中,

void foo() {
  std::this_thread::native_handle().... //error here
}

int main() {
  std::thread t1(foo);

  t1.join();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

你如何获得的native_handlestd::this_thread从函数内foo

c++ c++11 stdthread

11
推荐指数
2
解决办法
5136
查看次数

标签 统计

c++ ×3

c++11 ×3

multithreading ×1

qt ×1

stdthread ×1

windows ×1