Visual studio c 11

Возможности С++ 11/14/17 в Visual Studio 2015 RTM

Visual studio c 11
Близится дата релиза Visual Studio 2015, и многие хотели бы узнать, как обстоят дела с поддержкой стандартов C++ в компиляторе Microsoft.
В таблице приведены возможности библиотеки С++14/17, за которые мы али в мае.

StatusStdPaperTitle
missingC++14N3462SFINAE-Friendly result_of
missing C++17 N4387Improving pair And tuple
missing C++17 N4508shared_mutex (Untimed)
VS2015 C++14 N3302constexpr For
VS2015 C++14 N3469constexpr For
VS2015 C++14 N3470constexpr For
VS2015 C++14 N3471constexpr For , ,
VS2015 C++14 N3545integral_constant::operator()()
VS2015 C++14 N3642UDLs For , (1729ms, “meow”s, etc.)
VS2015 C++14 N3644Null Forward Iterators
VS2015 C++14 N3654quoted()
VS2015 C++14 N3657Heterogeneous Associative Lookup
VS2015 C++14 N3658integer_sequence
VS2015 C++14 N3659shared_mutex (Timed)
VS2015 C++14 N3668exchange()
VS2015 C++14 N3669Fixing constexpr Member Functions Without const
VS2015 C++14 N3670get()
VS2015 C++14 N3671Dual-Range equal(), is_permutation(), mismatch()
VS2015 C++14 N3778Sized Deallocation
VS2015 C++14 N3779UDLs For (3.14i, etc.)
VS2015 C++14 N3789constexpr For
VS2015 C++14 N3887tuple_element_t
VS2015 C++14 N3891Renaming shared_mutex (Timed) To shared_timed_mutex
VS2015 C++17 N3911void_t
VS2015 C++17 N4089Safe Conversions In unique_ptr
VS2015 C++17 N4169invoke()
2015 opt-in C++17 N4190Removing auto_ptr, random_shuffle(), And Old Stuff
VS2015 C++17 N4258noexcept Cleanups
VS2015 C++17 N4259uncaught_exceptions()
VS2015 C++17 N4277Trivially Copyable reference_wrapper
VS2015 C++17 N4279insert_or_assign()/try_emplace() For map/unordered_map
VS2015 C++17 N4280size(), empty(), data()
VS2015 C++17 N4366Precisely Constraining unique_ptr Assignment
VS2015 C++17 N4389bool_constant
VS2013 C++14 N3346Minimal Container Element Requirements
VS2013 C++14 N3421Transparent Operator Functors (less, etc.)
VS2013 C++14 N3655Alias Templates For (decay_t, etc.)
VS2013 C++14 N3656make_unique()
VS2013 C++17 N4510Supporting Incomplete Types In vector/list/forward_list
N/A C++14 N3924Discouraging rand()
N/A C++17 N4284Contiguous Iterators

2015 opt-in означает что существует защитное макро. По умолчанию работает auto ptr/etc. Если вы определите _HAS_AUTO_PTR_ETC в 0 на уровне проекта (через командный параметр или проектный файл), то auto ptr/etc не предоставляется. В дальнейшем предусматривается opt-out, а через релиз auto ptr/etc будет убран совсем. «N/A» означает что эти возможности вносят изменения в формулировки стандарта, но никак не затрагивают имплементоров или пользователей. Имплементация стандартной библиотеки C99 готова, кроме tgmath.h (что иррелевантно к C++) и макросов-прагм CX_LIMITED_RANGE/FP_CONTRACT.     Имплементация стандартной C++11 библиотеки готова.   

Имплементация стандартной C++14 библиотеки готова, за исключением Expression SFINAE в результате (N3462) и std::function (LWG 2132), плюс 11 открытых Library Issues.

   

Имплементация стандартной C++17 библиотеки готова, за исключением улучшений в pair/tuple (N4387) и untimed shared_mutex (N4508), плюс 10 открытых Library Issues.

   

Все оставшиеся исключения являются багами.  (На текущий момент мы исправили около 160 багов в STL между 2013 и 2015 релизами.  Год назад, был предоставлен список первых наборов исправлений. 

  • (C99) offsetof
  • (C++11) numeric_limits double>::quiet_NaN()/signaling_NaN()
  • (C++11) mutex's default constructor
  • (C++14) error_category's default constructor
  • (C++14) min()/max()/minmax() for initializer_list
  • (C++17) min_element()/max_element()/minmax_element()

На данный момент команда сфокусирована на получении полного соответствия стандарту, что является более высоким по приоритету нежели имплементация технических спецификаций, утверждаемых комитетом.

  (мы думаем что ТС’ы важны, но стандарт еще важнее)  Тем не менее мы уже имплементировали несколько ТС возможностей: Filesystem «V3» TS (N4100) и Uniform Container Erasure (N4529 [container.erasure]).

[RTM] Эти возможности имплементированы между RC и RTM. [1] Мы планируем приступить к имплементации Expression SFINAE в компиляторе сразу после 2015 RTM, и планируем выпустить в свет в обновлении. Но возможно это не получится в 2015 Update 1. [2] Поддержка препроцессора C99 осталась без изменений.  Частичный статус остался в силе так как несмотря на то что компилятор поддерживает variadic макросы, поведение препроцессора не соответствует стандарту C99/C++11 во многих вещах.

[3] «Extended integer types» находятся в списке Not Applicable по причине того, что стандарт не требует поддержки типов длиннее long long. Мы препочли не поддерживать такие типы, что является разрешенным поведением. GCC и Clang тоже не имплементировали эти типы.

[4] «Avoiding/fusing allocations» находится в списке Not Applicable по причине того, что стандарт позволяет, но не требует такой оптимизации.  Пока принято решение не имплементировать эту возможность, что является разрешенным поведением. Замечание в части C++11 constexpr: это очень большая «фича» с сложным взаимодействием, имплементирована на базе нового кода компилятора и потребовала очень серьезной модернизации многих компонент. Мы подозреваем что в текущем варианте есть баги и ограничения, и мы будем выпускать исправления в будущих обновлениях.

Хотим сказать большое спасибо всем, кто отправлял репорты об ошибках для промежуточных версий компилятора. Если вы найдете новые ошибки пожалуйста отправляйте их нам через Microsoft Connect и Send A Smile/Frown.

Источник: https://habr.com/ru/company/microsoft/blog/262805/

Установка поддержки C11 и C17 в Visual Studio

Visual studio c 11

Для поддержки стандартов C11 и C17 требуется Visual Studio 2019 версии 16.8 или более поздней.Support for C11 and C17 standards requires Visual Studio 2019 version 16.8 or later.

Чтобы отобразилась документация для этой версии, установите в этой статье селектор Версия Visual Studio в положение “Visual Studio 2019”.To see the documentation for this version, set the Visual Studio Version selector control for this article to Visual Studio 2019.

Он находится в верхней части оглавления на этой странице.It's found at the top of the table of contents on this page.

Поддержка стандартов C11 и C17 доступна начиная с Visual Studio 2019 версии 16.8.Support for C11 and C17 standards is available starting in Visual Studio 2019 version 16.8.

Для поддержки требуется обновленная универсальная среда выполнения C (UCRT) и последние обновления Windows SDK. Это гарантирует правильную работу с соответствующим препроцессором (/Zc:preprocessor).

Support requires an updated Universal C Runtime (UCRT) and the latest Windows SDK updates, to work properly with the conforming preprocessor (/Zc:preprocessor).

Выпуски Windows SDK соответствуют выпускам ОС Windows.Windows SDK releases correspond with Windows OS releases. Так как в Windows не было выпусков с этими изменениями, вам потребуется пакет Windows SDK Insider Preview.Since there hasn't been a Windows release with these changes, you'll need an Insider Preview Windows SDK.

Это предварительная версия Windows SDK, соответствующая сборкам Windows, к которым в настоящее время предоставлен доступ или они тестируются с помощью участников программы предварительной оценки Windows.

That's a preview version of the Windows SDK that corresponds with Windows builds currently being flighted , or tested, by Windows Insiders. После установки пакета SDK для Windows 10 Insider Preview в проектах Visual Studio, для которых настроено использование последнего пакета Windows SDK, будет использоваться Insider Preview.

After you install the Insider Preview Windows 10 SDK, Visual Studio projects configured to use the latest Windows SDK will use the Insider Preview.

Предварительные условияPrerequisites

  • Установленная и запущенная на компьютере среда Visual Studio 2019 версии 16.8, предварительная версия 3 или более поздняя.Visual Studio 2019 version 16.8 Preview 3 or later installed and running on your computer. При установке включите рабочую нагрузку “Разработка классических приложений на C++”.In the install, include the Desktop development with C++ workload. Скачайте установщик предварительной версии на странице Visual Studio Preview.You can download the latest Preview from the Visual Studio Preview page. Если Visual Studio еще не установлено, ознакомьтесь с инструкциями по установке в статье Установка поддержки C и C++ в Visual Studio.If Visual Studio isn't installed yet, see Install C++ support in Visual Studio for installation instructions.

Любой пользователь может создать бесплатную учетную запись Майкрософт, а затем принять участие в программе предварительной оценки.Anyone can create a free Microsoft account and then opt into the Insider program.

Перейдите на страницу программы предварительной оценки Windows для разработчиков, выберите Регистрация и выполните вход.Go to the Windows Insider Program for Developers page, choose Register , and sign in.

После регистрации вы можете начать фокус-тестирование версий программ предварительной оценки Windows.After you register, you're given an option to start flighting Insider versions of Windows. Этот шаг не является обязательным для загрузки и использования пакета SDK для Windows 10 Insider.

This step isn't necessary to download and use the Insider Windows 10 SDK. Когда вы регистрируетесь, чтобы стать участником программы предварительной оценки Windows, новые тестовые пакеты Windows не будут автоматически загружены на ваши компьютеры.

When you register for Windows Insider, it doesn't automatically opt in your machines to download new Windows flights.

После перехода на страницу приветствия программы предварительной оценки Windows вам не нужно выбирать Flight now (Предоставить доступ сейчас).

Once you get to the Welcome to the Windows Insider Program page, you don't need to choose Flight now. Перейдите к следующему шагу, чтобы скачать пакет SDK Windows 10 Insider Preview.

Continue to the next step to download the Insider Preview Windows 10 SDK.

Вы можете установить пакет SDK для Windows Insider Preview с этой страницы.You can install the Insider Preview Windows SDK from the Windows Insider Preview Downloads page.

Если появится сообщение, что необходимо быть членом программы предварительной оценки Windows, убедитесь, что вы вошли в учетную запись.If you see a message that says “you need to be a member of the Windows Insider program,” make sure you've signed in.

Используйте ту же учетная запись Майкрософт, как и для программы предварительной оценки.Use the same Microsoft account you used for the Insider program.

Если отобразится сообщение We are sorry, the page you requested cannot be found (К сожалению, запрашиваемая страница не найдена), попробуйте изменить языковой стандарт в URL-адресе на en-us.If you see a message that says “We are sorry, the page you requested cannot be found,” try changing the locale in the URL to en-us.

Для работы на странице программы предварительной оценки необходимо использовать ОС Windows 10 Insider Preview.The Insider page claims that use of a Windows 10 Insider Preview OS is required. Это необходимо только для некоторого содержимого, включенного в Windows SDK.It's only true for some of the content included in the Windows SDK.

Это содержимое может зависеть от новых API-интерфейсов, отсутствующих в более старых версиях Windows.That content may depend on new APIs not present on older versions of Windows. Тем не менее, заголовки Windows и универсальной среды выполнения C можно установить и использовать без ОС программы предварительной оценки.

However, the Windows and Universal C Runtime headers can install and are usable without an Insider OS.

Выберите Get SDK Insider Preview – Build 20211 (Получить Insider Preview пакета SDK — сборка 20211) (или более поздней версии), чтобы начать скачивание.Choose Get SDK Insider Preview – Build 20211 (or later) to begin the download. Более поздние версии Windows SDK также будут работать.Later versions of the Windows SDK will also work.

Пакет SDK для Windows Insider Preview будет скачан в виде файла .iso .The Insider Preview Windows SDK downloads as an .iso file. В проводнике откройте папку, содержащую скачанный файл.

Open the folder that contains the downloaded file in File Explorer. Чтобы начать установку, подключите файл .iso , а затем запустите WinSDKSetup.exe .Mount the .iso file, and then run WinSDKSetup.

exe to start installation.

На странице Выбор расположения выберите Install the Windows Software Development Kit – to this computer (Установите пакет средств разработки программного обеспечения для Windows версии на этот компьютер), а затем нажмите кнопку Далее.

On the Specify Location page, select Install the Windows Software Development Kit – to this computer , and then choose Next. На странице Конфиденциальность комплектов Windows выберите, следует ли разрешить корпорации Майкрософт собирать аналитические сведения о комплектах Windows 10, а затем нажмите кнопку Далее.

On the Windows Kits Privacy page, select whether to allow Microsoft to collect insights for the Windows 10 Kits, then choose Next. Нажмите кнопку Принять , чтобы принять условия лицензионного соглашения.Choose Accept to accept the license agreement.

На странице выбора компонентов для установки выберите только эти компоненты:On the Select the features you want to install page, select only these features:

  • Средства подписывания Windows SDK для классических приложений;Windows SDK Signing Tools for Desktop Apps
  • Windows SDK для приложений под управлением UWP;Windows SDK for UWP Managed Apps
  • Windows SDK для приложений UWP C++;Windows SDK for UWP C++ Apps
  • Windows SDK для классических приложений C++ x86 (если планируется сборка для x86);Windows SDK for Desktop C++ x86 Apps (if you plan to build for x86)
  • Windows SDK для классических приложений C++ amd64 (если планируется сборка для amd64);Windows SDK for Desktop C++ amd64 Apps (if you plan to build for amd64)
  • Windows SDK для классических приложений C++ arm (если планируется сборка для arm);Windows SDK for Desktop C++ arm Apps (if you plan to build for arm)
  • Windows SDK для классических приложений C++ arm64 (если планируется сборка для arm64).Windows SDK for Desktop C++ arm64 Apps (if you plan to build for arm64)

Нажмите кнопку Установить , чтобы установить выбранные компоненты пакета SDK.Choose Install to install the selected SDK components. Для завершения установки пакета SDK требуется несколько минут.The SDK takes a couple of minutes to complete installation. После завершения откройте Visual Studio.When it completes, open Visual Studio.

Шаг 4. Настройка режима C11 или C17 в Visual StudioStep 4: Configuring C11 or C17 mode in Visual Studio

В Visual Studio последовательно откройте новый или существующий проект C, а затем — диалоговое окно Страницы свойств проекта.In Visual Studio, open a new or existing C project, then open your project's Property Pages dialog.

Настройте проект для использования пакета SDK для Windows 10 Insiders Preview.Set the project to use the Insiders Preview Windows 10 SDK. На странице Свойства конфигурации >Общие задайте для свойства Версия Windows SDK значение 10.

0 (последняя установленная версия) или укажите конкретную предварительную версию, которую вы установили.On the Configuration Properties >General page, set the Windows SDK Version property either to 10.

0 (latest installed version) , or to the specific preview version you installed.

Также отобразится новый параметр: Стандарт языка C.You'll also see a new option: C Language Standard.

Присвойте ему значение ISO C11 Standard (/std:c11) (Стандарт ISO C11 (/std:c11)) или ISO C17 (2018) Standard (/std:c17) (Стандарт ISO C17 (2018) (/std:c17)).

Set this property to ISO C11 Standard (/std:c11) or ISO C17 (2018) Standard (/std:c17).

Стандарт языка C++ используется, если языком является C++.The C++ Language Standard is used when the language is C++. По умолчанию файл имеет расширение .cpp .It's the default when the file extension is .cpp. Версия стандарта языка C используется, если языком является C. По умолчанию файл имеет расширение .c .

The C Language Standard version is used when the language is C. It's the default when the file extension is .c. Чтобы выполнить сборку с помощью C11 или C17, разместите исходный код в файле .c или задайте код для компиляции как C. Это свойство можно задать на странице Свойства конфигурации >C/C++ >Дополнительно.

To build using C11 or C17, put your source code in a .c file, or set the code to compile as C. You can set this property for your project on the Configuration Properties >C/C++ >Advanced page. Установите для свойства Компилировать как значение Компилировать как C код (/TC) .

Set the Compile As property to Compile as C code (/TC).

Поздравляем! Вы настроили все компоненты для создания кода C11 и C17 в Visual Studio 2019 версии 16.8, предварительная версия 3.Congratulations, you've set up everything you need to build C11 and C17 code in Visual Studio 2019 version 16.8 preview 3!

См. такжеSee also

/std (определение стандартной версии языка)/std (Specify language standard version)

Источник: https://docs.microsoft.com/ru-ru/cpp/overview/install-c17-support?view=msvc-160

Как настроить Visual Studio Code для C, C++, Java, Python

Visual studio c 11

Источник: Nuances of Programming

Visual Studio Code — популярный редактор кода, бесплатный и с открытым исходным кодом. Но я уверен: каждый из нас, кто пытался настроить Visual Studio Code для разработки приложений на C++, Java или Python, прошел через стадию: “О Боже! Почему нельзя как-нибудь попроще?” Я сам пробовал настроить VS Code пару раз и в итоге закончил тем, что использовал CodeBlocks. 

Источник: https://zen.yandex.ru/media/nuancesprog/kak-nastroit-visual-studio-code-dlia-c-c-java-python-5f43dbdf3e22cf16c798a5ea

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.