【发布时间】:2021-10-09 03:23:58
【问题描述】:
所以我尝试在 Visual Studio 2019 和 2022 中使用counting_semaphore,但我得到的只是“std has no membercounting_semaphore”。
在单个组件中添加 clang 11 后,我在 Visual Studio 2019 中进行了尝试,但仍然遇到相同的错误。然后我就觉得它不支持 C++20。所以我想也许这就是它不起作用的原因。
然后我看到 Vs2022 Preview 支持 C++20。所以我安装了它,包括在内,但我仍然无法执行“std::counting_semaphore slot(5);”正如它所说的,std没有一个名为counting semaphore的成员。
我还在 2022 预览版安装程序的各个组件中安装了 clang12,但仍然无法正常工作。
我不确定自己做错了什么。
我在网上看到了例子:
https://www.modernescpp.com/index.php/semaphores-in-c-20 https://en.cppreference.com/w/cpp/thread/counting_semaphore
告诉如何使用它,但是当我将代码放入 vs 时,它就不起作用了。
我可以在#include 上“查看代码”,它显示了counting_semaphore 的实现,但我不能使用它!!!
请有人澄清我做错了什么!!!
【问题讨论】:
-
"然后我看到 Vs2022 Preview 支持 C++20" - 在哪里?您确定消息来源声称 VS2022 Preview 支持整个 C++20吗?这是非常不可能的。 “不工作”是指它实际上没有编译,还是你的编辑器中出现误报?
-
@Fureeish 在 C++20 支持中的 visualstudio.microsoft.com/vs/preview/vs2022 站点上这么说。但它没有说所有功能都支持什么,而是说支持最新的工具链。当我说它不起作用时,我的意思是我得到 std has no membercounting_semaphore。
-
@Kevin 是的,我看到了,但这并没有帮助,因为我已经安装了 clang11 并使用其中提到的 Visual Studio 版本来使用counting_semaphore。
-
"当我说它不起作用时,我的意思是我得到 std has no membercounting_semaphore." - 但是你在编辑器中得到那个 (如屏幕截图所示 + 可能当您将鼠标悬停在它上面时)或者您是否在编译代码时实际上遇到编译器错误,尽管有错误的视觉指示?
标签: c++ visual-studio semaphore binary-semaphore