Новые возможности средств сборки MSVC

Версия 14.51 содержит множество обновлений и исправлений в компилятор Microsoft C++ и другие средства сборки.

Новые возможности средств сборки MSVC версии 14.51

  • Представлено в Visual Studio 2026 версии 18.6, выпущенной в мае 2026 года.

Visual Studio 2026 версии 18.6 поставляется с набором инструментов платформы версии 145 для проектов MSBuild C++ и Microsoft средства сборки C++ (MSVC) версии 14.51. Чтобы получить доступ ко всем новым возможностям языка, выполните сборку с /std:c++latest. Или, если вы хотите ограничить возможности до C++23, используйте /std:c++23preview.

Средства сборки MSVC версии 14.51 сохраняют двоичную совместимость с кодом, созданным с помощью средств MSVC, отправленных в Visual Studio 2015 или более поздней версии. Дополнительные сведения о двоичной совместимости см. в статье C++ с двоичной совместимостью между версиями Visual Studio.

Подробные сведения о Смотри
Новые возможности для разработчиков C++ Средства сборки MSVC версии 14.51 (Release Candidate) теперь доступны
Улучшения стандартной библиотеки (STL) STL Changelog MSVC Build Tools 14.51
Улучшения соответствия языка C++ Улучшения соответствия C/C++, изменения поведения и исправления ошибок в средствах сборки Microsoft C++ (MSVC)

Вот краткий обзор некоторых новых функций в MSVC Build Tools версии 14.51:

Улучшения языка C++

  • Дополнительные возможности C++23 и C++20, а также исправления проблем соответствия. Полные сведения о C++23 см. в статье C++23 Support in MSVC Build Tools 14.51.
  • Многочисленные исправления в обработке функций consteval, включая поддержку constexpr new/delete в модулях. Теперь /experimental:constevalVfuncVtable поведение включено по умолчанию.
  • Добавлена поддержка возможностей языка C: квалификатора _Atomic и __typeof__ для типов функций.
  • Исправлена неправильная диагностика для элементов гибкого массива C99.
  • MSVC теперь создает файлы IFC в соответствии со спецификацией IFCверсии 0.44.
  • Улучшено восстановление ошибки синтаксического анализа.

Улучшения языка C

Добавлена поддержка квалификатора _Atomic и поддержка __typeof__ для типов функций. Исправлена ошибка, из-за которой предупреждение C4319 не испускается при компиляции кода на C.

Улучшения стандартной библиотеки

  • Добавлены новые заголовки C++23: <flat_map> (P0429R9) и <flat_set> (P1222R4).
  • Массовый ремонт: исправлены <regex> давние проблемы с правильностью и производительностью. Реализация включает значительные улучшения производительности.
  • Векторизация NEON для ARM64: В первом выпуске представлены векторизованные с помощью NEON алгоритмы STL для ARM64/ARM64EC. Ранее только x64/x86 получили оптимизации SIMD с помощью SSE4.2 и AVX2. Векторные реализации теперь доступны для алгоритмов, включая swap_ranges(), , rotate(), reverse()min_element(), и max_element()find()count()многое другое.
  • Реализованы 18 решений по проблемам рабочей группы по библиотеке (LWG), включая исправления переполнения при преобразовании длительности, поддержку массивов construct_at и const-перегрузок optional.
  • Оптимизированные преобразования целых чисел в строку путем печати цифр в парах. Библиотека стандартных шаблонов теперь оптимизирована для скорости вместо размера.
  • Добавлены характеристики типов для обнаружения ссылок, привязанных к временным объектам (P2255R2).
  • Добавлена явная поддержка управления временем существования (P2590R2).
  • Расширенные средства визуализации отладчика, включая встроенную функцию c_str() для basic_string, которая позволяет использовать условные точки останова.

Улучшения сборки

  • Поддержка Arm SVE: В MSVC впервые реализована поддержка Arm Scalable Vector Extension (SVE), включая поддержку типов во фронтенде, понижение intrinsic-функций, раскрутку регистров, сохраняемых вызываемой функцией, и поддержку DIA SDK.
  • PGO на основе выборки: Предварительная поддержка оптимизаций, управляемых профилем, на основе выборки. Дополнительные сведения см. в статье Об использовании интерактивной оптимизации профилей (SPGO) для повышения производительности C++ .
  • Оптимизатор серверной части C++ улучшает создание кода, в том числе более эффективное встраивание, оптимизацию циклов и сопоставление шаблонов.
  • Экспериментальная поддержка директив MASM для x64 Unwind версии 3. Дополнительные сведения см. в разделе Директивы Unwind версии 3 (экспериментальные)
  • Предварительная версия Intel APX: Предварительная версия поддержки расширений расширенной производительности Intel. Дополнительные сведения см. в разделе /feature (x64)[[msvc::enable(feature:APX)]] и [[msvc::disable(feature:APX)]].
  • Включено удаление отладочной информации для уменьшения размера PDB.

Устаревшие элементы

  • Следующие экспериментальные заголовки корутин теперь устарели: <experimental/coroutine>, <experimental/generator>и <experimental/resumable>. Переход к стандартным корутинам C++20 с помощью заголовка <coroutine> .

Удаленные компоненты

Были удалены следующие устаревшие функции, не являющиеся стандартными:

  • TR1, включая пространство имен std::tr1, старые array::assign(), а также старые механизмы и дистрибутивы <random>. Не рекомендуется использовать с VS 2017 15.5 (декабрь 2017 г.).
  • _ALLOW_RTCc_IN_STL Макрос удален. Библиотека стандартных шаблонов не поддерживает параметр компилятора/RTCc, но/RTCs/RTCu//RTC1 остается поддерживаемым.
  • <hash_map> и <hash_set>. Не рекомендуется использовать с VS 2015 (июль 2015 г.).
  • <experimental/filesystem>. Не рекомендуется использовать с VS 2019 16.3 (сентябрь 2019 г.).
  • stdext::checked_array_iterator и stdext::unchecked_array_iterator. Не рекомендуется использовать с версии VS 2022 17.8 (ноябрь 2023 г.) для C++17 и более поздних версий.
  • basic_istream::ipfx() / isfx() и basic_ostream::opfx()/osfx(). Не рекомендуется использовать с ВЕРСИИ VS 2022 17.9 (февраль 2024 г.) для C++17 и более поздних версий.
  • locale::empty(). Не рекомендуется использовать с VS 2022 17.14 (май 2025 г.).

Новые возможности средств сборки MSVC версии 14.50

  • Представлено в Visual Studio 2026 версии 18.0, выпущенной в ноябре 2025 г.

Visual Studio 2026 версии 18.0 поставляется с набором инструментов платформы версии 145 для проектов MSBuild C++ и средств сборки Microsoft C++ (MSVC) версии 14.50, которая обеспечивает оптимальное соответствие, производительность сборки и историю производительности среды выполнения. Чтобы получить доступ ко всем новым возможностям языка, выполните сборку с /std:c++latest. Или, если вы хотите ограничить возможности до C++23, используйте /std:c++23preview.

Средства сборки MSVC версии 14.50 сохраняют двоичную совместимость с кодом, созданным с помощью средств MSVC, поставляемых в Visual Studio 2015 или более поздней версии. Дополнительные сведения о двоичной совместимости см. в статье C++ с двоичной совместимостью между версиями Visual Studio.

Подробные сведения о Смотри
Новые возможности для разработчиков C++ Новые возможности для разработчиков C++ в Visual Studio 2026 версии 18.0
Улучшения стандартной библиотеки C++ (STL) STL Changelog MSVC Build Tools 14.50
Обновления языка C++ Обновления языка C++ в средствах сборки MSVC версии 14.50
Улучшения соответствия языка C++ Улучшения соответствия C/C++, изменения поведения и исправления ошибок в средствах сборки Microsoft C++ (MSVC)

Вот краткий обзор некоторых новых функций в средствах сборки MSVC версии 14.50 и Visual Studio 2026 версии 18.0.

Улучшения языка C++

  • C++20 используется по умолчанию для новых проектов консольного приложения, классического приложения Windows, Dynamic-Link библиотеки и статической библиотеки C++.
  • Директива предварительной обработки C++23 #warning позволяет создавать диагностические сообщения без остановки компиляции, в отличие от #error. Дополнительные сведения см. в директиве #warning.
  • Легко задать аргументы командной строки отладчика для любого проекта C++ через панель инструментов, включая проекты CMake и Unreal Engine. Эта функция больше не привязана к рабочей нагрузке разработки игр с помощью C++ и доступна всем разработчикам C++ без установки других рабочих нагрузок или компонентов. Дополнительные сведения см. в разделе "Передача аргументов командной строки".

Улучшения стандартной библиотеки

  • Улучшенная <regex> надежность и скорость. LWG-2503 добавил многострочную опцию к syntax_option_type. regex Это изменение поведения. По умолчанию _REGEX_LEGACY_MULTILINE_MODE используется значение 0, которое запрашивает стандартное поведение. Установите значение 1 для , чтобы запросить устаревшее поведение. Дополнительные сведения см. в журнале изменений STL.
  • Добавлены и улучшены векторизованные реализации многих типов и функций.

Усовершенствования GitHub Copilot

  • Copilot Chat позволяет использовать естественный язык для получения ответов на вопросы (режим запросить) или даже реализовать изменения для вас автоматически (режим агента).
  • Copilot Chat является более умным с улучшенным контекстом для повседневных задач. Ожидайте лучших результатов при поиске по вашему коду и обращении к конкретным строкам в коде.
  • Параметр "Действия Copilot" добавлен в контекстное меню правой кнопкой мыши в редакторе Visual Studio. Используйте его, чтобы быстро привлечь определенный файл или строки кода, которые вы выбираете для внимания Copilot Chat. Затем можно попросить Copilot объяснить, что делает код, делать оптимизации, создавать примечания, создавать модульные тесты и многое другое.
  • Улучшение завершения кода на основе ИИ для C++. GitHub Copilot использует контекст из соответствующих файлов для улучшения встроенного автозаполнения для C++. GitHub Copilot включает другие соответствующие файлы в качестве контекста, что сокращает галлюцинации, предлагая более релевантные и точные предложения.
  • Дополнительные сведения см. в статье о новых возможностях GitHub Copilot для разработчиков C++: обновление MSVC, повышение производительности сборки и рефакторинг кода C++.

Улучшения сборки

  • Visual Studio 2026 теперь включает CMake 4.1.1 по умолчанию. CMake также включает генератор Visual Studio 2026 и поддерживает современные проекты SLNX, поэтому вы можете создавать проекты Visual Studio C++ непосредственно из CMake.
  • Включает последнюю версию обработчика IncrediBuild и обновленное расширение, которое работает с Visual Studio 2026 версии 18.0.
  • Улучшения производительности серверной среды выполнения компилятора. По сравнению с Visual Studio версии 17.14, наблюдается до 6% улучшение на примере City Sample RenderThread Unreal Engine и до 3% улучшения на бенчмарке GameThread City Sample для Unreal Engine. Дополнительные сведения см. в статье "Почему следует обновить средства сборки C++".
  • Помощник по настройке Visual Studio поможет вам перенаправить проекты для сборки с помощью последних средств сборки MSVC. Для получения дополнительной информации см. «Перенастройка проектов с помощью помощника по настройке».

Улучшения анализа кода

  • Clang-Tidy улучшения анализа кода предоставляют расширенные параметры конфигурации для более быстрых сборок и пользовательских рабочих процессов:
    • Анализ кода имеет новые параметры конфигурации. Теперь вы можете выделить больше процессоров для выполнения анализа кода в рамках сборки, что ускорит ваш рабочий процесс.
    • Вы можете добавить настраиваемые аргументы в командную строку, используемую для вызова clang-tidy, обеспечивая полный контроль над настройкой анализа.
    • Доступ к новым параметрам изсвойств проекта>анализа кода>Clang-Tidy:

Снимок экрана: диалоговое окно свойств проекта с параметрами конфигурации clang-tidy, включая выделение процессора и аргументы пользовательской командной строки

  • Поддержка AddressSanitizer для сборок ARM64 (предварительная версия): уже некоторое время MSVC Build Tools поддерживали сборку проектов, ориентированных на x64 и x86, с использованием AddressSanitizer, что позволяет выявлять труднообнаруживаемые ошибки безопасности памяти без ложных срабатываний во время выполнения и повышать безопасность работы с памятью. Теперь можно использовать AddressSanitizer для целевого объекта ARM64. Эта функция предоставляется в виде предварительной версии.

Улучшения производительности

  • Создайте предварительно обработанные выходные данные для файла C++. В Visual Studio щелкните правой кнопкой мыши файл C++, чтобы мгновенно создать результаты препроцессинга, что упрощает отладку макросов и включаемых файлов и позволяет сразу увидеть ошибки: снимок экрана, показывающий контекстное меню правой кнопкой мыши для файла C++ с выделенным параметром Предварительной обработки.
  • Отладчик Visual Studio теперь отображает возвращаемые значения функций непосредственно в строке. Это обеспечивает видимость поведения функции в режиме реального времени без просмотра кода или установки точек наблюдения, что позволяет быстрее обнаруживать логические проблемы или неожиданные результаты: снимок экрана, показывающий инлайн-значения после возврата, отражённые в отладчике рядом с вызовом функции

Другие изменения

  • В установщике Visual Studio рабочая нагрузка C++ Linux переименована в Linux, Mac и встраиваемая разработка с C++.

Устаревшие элементы

  • Минимальные поддерживаемые целевые операционные системы для средств сборки MSVC версии 14.50 : Windows 10 или Windows Server 2016.

  • Средства сборки MSVC версии 14.50 больше не предназначены:

    • Windows 7 / Windows Server 2008 R2
    • Windows 8 / Windows Server 2012
    • Windows 8.1 / Windows Server 2012 R2

    Эти изменения позволяют повысить производительность, повышенную безопасность и выравнивание с последними возможностями платформы Windows.

Параметр /await компилятора MSVC устарел и будет удален в будущем выпуске. Этот переключатель включил раннюю черновую реализацию корутин C++ с помощью заголовочного файла <experimental/coroutine>. Разработчикам следует использовать стандартные корутины C++ с помощью заголовка <coroutine>, доступного начиная с C++20 и в более поздних версиях. Для проектов C++14/17 используйте /await:strict (который не рекомендуется) для доступа к стандартному <coroutine> заголовку без включения других функций C++20.

Мобильная разработка с рабочей нагрузкой для C++ для iOS и Android, а также инструменты для встроенных систем и IoT (Просмотрщик RTOS, Сериал Монитор, Просмотрщик периферийных устройств и Импорт ST-проектов) больше не поддерживаются и будут удалены в будущем обновлении. Пакеты NDK Android, включенные в разработку мобильных устройств с рабочей нагрузкой C++, остаются поддерживаемыми. Это влияет на поддержку средств разработки iOS и Android, включая новые проекты, сборку и отладку.

Удаленные компоненты

Отзывы и предложения

Мы хотели бы услышать ваше мнение! Вы можете сообщить о проблеме или предложить функцию с помощью значка "Отправить отзыв" в правом верхнем углу установщика или Visual Studio IDE или в меню Справка>Отправить отзыв. Вы можете отслеживать проблемы в сообществе разработчиков Visual Studio, позволяющем добавлять комментарии или искать решения. Кроме того, вам доступна бесплатная поддержка в чате по вопросам с установкой.

Blogs

Будьте в курсе всех новых выпусков, используя аналитические сведения и рекомендации, доступные в Microsoft Блоги разработчиков. В блогах можно найти записи, подробно изучающие разнообразные функции.

Блог команды C++ и блог Visual Studio имеют особый интерес.