Невозможно использовать std:: counting_semaphore в Visual Studio 2019 и 2022

#c #visual-studio #semaphore #binary-semaphore

Вопрос:

Поэтому я пытаюсь использовать counting_semaphore в visual studio 2019 и 2022, но все, что я получаю, это «у std нет члена counting_semaphore».

Я попробовал это в visual studio 2019 после добавления clang 11 в отдельные компоненты, но все равно получаю ту же ошибку. Тогда я подумал, что все в порядке, он не поддерживает C 20. Поэтому я подумал, что, может быть, именно поэтому это не работает.

Затем я увидел, что предварительный просмотр Vs2022 поддерживает C 20. Поэтому я установил его, включил и все еще не могу сделать «std::counting_semaphore<5> слотов(5);», поскольку в нем говорится, что в std нет элемента под названием семафор подсчета.

Я также установил clang12 в отдельных компонентах в установщике предварительного просмотра 2022 года, но все равно не смог заставить его работать.

Я не уверен, что делаю что-то не так.

Я вижу примеры в Интернете:

https://www.modernescpp.com/index.php/semaphores-in-c-20
https://en.cppreference.com/w/cpp/thread/counting_semaphore

рассказываю, как его использовать, но когда я вставляю код в vs, он просто не работает.

Я могу сделать «просмотр кода» на #include, и он показывает реализацию counting_semaphore, и все же я не могу его использовать!!!

Пожалуйста, кто-нибудь, пожалуйста, объясните, что я делаю не так!!!

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Комментарии:

1. » Затем я увидел, что Vs2022 Preview поддерживает C 20 » — где? Вы уверены, что источник утверждал, что предварительный просмотр VS2022 поддерживает весь C 20? Это очень маловероятно. И под » не работает » вы подразумеваете, что он на самом деле не компилируется или у вас просто ложноположительная ошибка в редакторе?

2. en.cppreference.com/w/cpp/compiler_support/20

3. @Fureeish Говорит так дальше visualstudio.microsoft.com/vs/preview/vs2022 поддержка сайта на C 20. Но в нем не говорится, что поддерживаются все функции, но говорится, что поддерживается последняя цепочка инструментов. Когда я говорю, что это не работает, я имею в виду, что у std нет члена counting_semaphone.

4. @Kevin Да, я видел это, но это действительно не помогает, так как у меня установлен clang11 и используется версия visual studio, упомянутая в нем для использования counting_semaphore.

5. » Когда я говорю, что это не работает, я имею в виду, я вам СТД не имеет члена counting_semaphore. » — но ты понимаешь, что в редакторе (как показано на скриншоте потенциально при наведении курсора МОЗ над ним) или вы на самом деле получаете сообщение об ошибке компилятора при компиляции кода, несмотря на визуальный индикатор ошибки ?

Ответ №1:

Установили ли вы стандарт языка c ?

Property -> General -> C Language Standard -> /std: c latest

введите описание изображения здесь

Я мог бы успешно выполнить сборку в visual studio 2022 preview 17.0.0 preview 2.0.

введите описание изображения здесь

И я также мог бы успешно создавать в visual studio 2019.

введите описание изображения здесь

Комментарии:

1. @SiddharthShekar Мы признательны вам за то, что вы удовлетворены нашей помощью. Если ваше дело было раскрыто, пожалуйста, помогите отметить ответы.

2. @SiddharthShekar Вы можете нажать «проверить» перед ответом.