无法在 Visual Studio 2019 和 2022 中使用 std::counting_semaphore
Posted
技术标签:
【中文标题】无法在 Visual Studio 2019 和 2022 中使用 std::counting_semaphore【英文标题】:Unable to use std:: counting_semaphore in Visual Studio 2019 and 2022 【发布时间】: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吗?这是非常不可能的。 “不工作”是指它实际上没有编译,还是你的编辑器中出现误报? en.cppreference.com/w/cpp/compiler_support/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." - 但是你在编辑器中得到那个 (如屏幕截图所示 + 可能当您将鼠标悬停在它上面时)或者您是否在编译代码时实际上遇到编译器错误,尽管有错误的视觉指示? 【参考方案1】:你是否设置了c++语言标准?
Property -> General -> C++ Language Standard -> /std: c++ latest
我可以在visual studio 2022 preview 17.0.0 preview 2.0中成功构建。
而且我也可以在 Visual Studio 2019 中成功构建。
【讨论】:
@SiddharthShekar 感谢您对我们提供的帮助感到满意。如果您的案例已经解决,请帮忙标记答案。 @SiddharthShekar 您可以点击答案前面的“检查”。以上是关于无法在 Visual Studio 2019 和 2022 中使用 std::counting_semaphore的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 Visual Studio 2019 中定位 .Net Framework
无法在 Visual Studio 2019 中使用诊断工具
无法在 Visual Studio 2019 中打开 Service Fabric 项目
Visual Studio 2019 IntelliSense 无法识别更改的值