gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 15:02:23 27 4
gpt4 key购买 nike

在下面的代码片段中,

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

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

t1.join();
return 0;
}

如何从函数 foo 中的 std::this_thread 获取 native_handle

最佳答案

线程无法自动获得对其自身 std::thread 的访问权。这是有意为之的,因为 std::thread 是一种只能移动的类型。

我相信您要求的是 std::thread::idnative_handle() 成员,这是一个有趣的建议。据我所知目前是不可能的。它会像这样使用:

void foo()
{
auto native_me = std::this_thread::get_id().native_handle();
// ...
}

它不能保证有效,甚至不存在。但是我想大多数 POSIX 平台都可以支持它。

尝试更改 C++ 标准的一种方法是提交问题。 Here是如何操作的说明。

关于C++11 'native_handle' 不是 'std::this_thread' 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com