#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 Вы можете нажать «проверить» перед ответом.