Эволюция C++ в 2019 году

задняя часть C++

Инженер-программист С++BartekОпубликовал блог с обзором разработки C++ в 2019 году.

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/1/9/16f8ae19978d0ffa~tplv-t2oaga2asx-image.image

Бартек в основном представил эволюцию функций C++ в 2019 году, значительный прогресс на глобальных конференциях, улучшения связанных инструментов и ожидания новых функций C++20, которые он резюмировал в виде трех основных проблем:

  • C++20 скоро появится
  • инструменты, теперь проще писать код на C++
  • Стабильная позиция C++ среди разработчиков

(Следует отметить, что в этой статье представлены только взгляды Бартека, а не взгляды всего комитета ISO C++.)

Как видно из таблицы ниже, в 2019 году сообщество C++ сделало много вещей, а также есть большой прогресс в новых функциях, которые нас беспокоят, таких как Clang.8.0.0,9.0.0публиковать,VS 2019опубликовать сGCC 9.1выпуск и т.д.

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/1/9/16f8ae1999ac91be~tplv-t2oaga2asx-image.image

Подводя итог, можно сказать, что, начиная с Clang 5.0, GCC 8.0, Visual Studio 15.7 и компилятора Intel C++ 19.0.1, все компиляторы поддерживают функции языка C++. Хотя стандартная библиотека C++ нуждается в другой поддержке, особенно в таких аспектах, как параллельные алгоритмы и файловые системы.std::filesystemТребуется GCC 8.1 (или более поздняя версия GCC 9.1), Clang 3.9 (или более поздняя версия 7.0) и Visual Studio 2017 15.7. Обновления параллельных алгоритмов впервые были доступны в Visual Studio 2017 15.7, но с последующими обновлениями команда MSVC добавила больше алгоритмов.

В этом году доминировали дискуссии о C++20, а функции на данный момент заморожены.Основные функции включают в себя:

  • модуль
  • сопрограмма
  • Основные понятия стандартной библиотеки
  • Сфера
  • constexprслужба поддержки:newdelete,dynamic_cast,trycatch, виртуальный
  • constexprВекторы и строки
  • Время: Календарь, поддержка часового пояса
  • std::format
  • std::span
  • std::jthread

Популярные в настоящее время компиляторы реализуют многие функции C++20. У Bartek есть небольшой список новых функций в C++20:

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/1/9/16f8ae199a09700c~tplv-t2oaga2asx-image.image

Что касается инструментов, прежде всего, Visual Studio предоставляет множество новых возможностей поддержки C++, в том числе:

  • Завершение кода с помощью ИИ с помощью Visual Studio IntelliCode
  • Поддержка Clang и Clang-Tidy MSVC в проектах C++ MSBuild и CMake.
  • AddressSanitizer поддерживает проекты, скомпилированные с помощью MSVC в Windows.
  • Лучшая интеграция с CMake
  • Концепции, доступные в версии 16.3
  • всестороннийto_chars()Поддерживается, соответствует требованиям C++17
  • Доступен новый набор инструментов под названием C++ Build Insights.

Clang/LLVM предоставляет множество мощных утилит, таких как:

Анализатор кода CppDepend v2019.3 добавляет поддержку рекомендаций по кодированию MISRA, поддержку VS 2019, проекты QT, упрощенный пользовательский интерфейс, встроенную поддержку проектов.

PVS-Studio, инструмент обнаружения ошибок в исходном коде программ, написанных на C/C++ и C#, некоторые заметные изменения за 2019 год включают анализ проектов .NET Core 3 и 3.1, поддержку руководств MISRA, более 40 новых проверок, поддержку Java, плагин SonarQube .

Есть также некоторые новые изменения в менеджерах пакетов Conan и Microsoft/vcpkg.

Наконец, Бартек сообщил, что в 2019 году статус C++ среди разработчиков остается стабильным:

  • C++ занимает 4-е место в рейтинге языков программирования TIOBE.
  • В опросе StackOverflow C++ находится на 9 месте выше C.
  • В опросе GitHub C++ занял 6-е место.

В дополнение к этим спискам сам Бартек составил простую анкету, и результаты показали использование C++, включая используемую версию стандартной библиотеки, выбор инструментов и использование новых возможностей C++20:

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/1/9/16f8ae199890f404~tplv-t2oaga2asx-image.image

Полный обзор смотрите в оригинальном блоге:

Woohoo.B Филип EK.com/2019/12/CPP…

Источник этой статьи: Китай с открытым исходным кодом

Оригинальная ссылка:Woohoo.OSCHINA.net/news/112476…