Инженер-программист С++BartekОпубликовал блог с обзором разработки C++ в 2019 году.
Бартек в основном представил эволюцию функций C++ в 2019 году, значительный прогресс на глобальных конференциях, улучшения связанных инструментов и ожидания новых функций C++20, которые он резюмировал в виде трех основных проблем:
- C++20 скоро появится
- инструменты, теперь проще писать код на C++
- Стабильная позиция C++ среди разработчиков
(Следует отметить, что в этой статье представлены только взгляды Бартека, а не взгляды всего комитета ISO C++.)
Как видно из таблицы ниже, в 2019 году сообщество C++ сделало много вещей, а также есть большой прогресс в новых функциях, которые нас беспокоят, таких как Clang.8.0.0,9.0.0публиковать,VS 2019опубликовать сGCC 9.1выпуск и т.д.
Подводя итог, можно сказать, что, начиная с 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
служба поддержки:new
/delete
,dynamic_cast
,try
/catch
, виртуальный -
constexpr
Векторы и строки - Время: Календарь, поддержка часового пояса
std::format
std::span
std::jthread
Популярные в настоящее время компиляторы реализуют многие функции C++20. У Bartek есть небольшой список новых функций в C++20:
Что касается инструментов, прежде всего, 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 предоставляет множество мощных утилит, таких как:
- Clang Tidy
- Clang-Include-Fixer
- AddressSanitizer
- MemorySanitizer
Анализатор кода 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:
Полный обзор смотрите в оригинальном блоге:
Woohoo.B Филип EK.com/2019/12/CPP…
Источник этой статьи: Китай с открытым исходным кодом
Оригинальная ссылка:Woohoo.OSCHINA.net/news/112476…