Visual Studio 2019 настроен для: c 17, но он больше похож на c 14

#c 17 #visual-studio-2019

#c 17 #visual-studio-2019

Вопрос:

Свойства проекта VS2019, показывающие c    17

Если я скомпилирую некоторый код со следующим:

 #include <string_view>

std::string_view strv{ "Test 1" };
  

Я получаю эту ошибку:

 Error C2065 'string_view': undeclared identifier...
  

Я попробовал какой-то другой код на c 17, но ни один из них не работает.
Я получаю те же ошибки, если для стандарта языка C установлено значение std: c 14

Свойства-> C / C -> Командная строка содержит /std:c 17, но в фактической командной строке компилятора, которая выполняется, этот параметр не установлен.

Это версия Visual Studio 2019 для сообщества, версия 16.7.1

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

1. Properties-->C/C -->Command line Убедитесь, что вы смотрите на ту же конфигурацию, которую вы компилируете.

2. Это хороший комментарий, но да, я проверил, что я компилировал с правильной конфигурацией. Я также только что скомпилировал файл c (не весь проект), свойства файла c -> C / C -> Командная строка имеет параметр /std: c 17.

3. Тогда это странно. Я могу только предложить вам увеличить детализацию сборки и попытаться следить за тем, что происходит в файлах журнала.

4. Спасибо, я сделаю еще несколько попыток. Тогда я просто переустановлю VS2019. Если это сработает, я сообщу об этом.

5. Было бы интересно, если бы вы могли опубликовать здесь весь .vcxproj файл или, по крайней мере, <ClCompile> его разделы.

Ответ №1:

пользователь dxiv указал, что проблема заключается в раскрывающемся списке «Страницы свойств платформы», который должен быть установлен для ВСЕХ платформ (или установить C 17 индивидуально для платформ Win32 и x64).

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

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

1. .vcxproj показывает только <LanguageStandard>stdcpp17</LanguageStandard> строку под x64 конфигурациями. Убедитесь, что для Platforms установлено значение All Platforms на странице свойств, где вы выбираете C 17.

2. А также «Все конфигурации».