Конференция по C++ 2024: главные анонсы и нововведения
В начале ноября 2024 года в Берлине завершилась одна из крупнейших ежегодных конференций по C++ — CppCon 2024. Мероприятие собрало ведущих разработчиков комитета стандартизации, инженеров из Google, Microsoft и JetBrains, а также независимых энтузиастов. Главной темой стало будущее языка: безопасность, производительность и эволюция стандарта. Мы собрали самые важные анонсы, которые повлияют на всех, кто пишет на C++.
Ключевые нововведения C++26
Комитет ISO C++ представил обновлённый план стандарта C++26. Включены несколько долгожданных возможностей:
- Стандартизация
std::execution— новый фреймворк для асинхронных операций и параллелизма, который заменит сырые потоки и упростит написание конкурентного кода. - Pattern Matching (сопоставление с образцом) — долгожданная возможность, позволяющая писать более читаемый и безопасный код вместо громоздких if-else и switch.
- Расширение
constexpr— теперь можно использовать векторы и строки в compile-time вычислениях, что открывает путь к более эффективным шаблонам. - Улучшенные корутины — добавлены новые ленивые генераторы и поддержка стековых контекстов для высоконагруженных приложений.
Безопасность памяти: новый вектор развития
Одной из самых обсуждаемых тем стала инициатива Safe C++ — проект, направленный на устранение коренных причин уязвимостей, связанных с памятью. Комитет представил черновик расширения языка, включающего:
- Борроу-чекер (borrow checker), аналогичный Rust, но с сохранением обратной совместимости.
- Обязательную инициализацию переменных по умолчанию (Zero-initialization) в новом коде.
- Маркеры
[[unsafe::memory]]для явного указания опасных операций — это позволит статическим анализаторам точнее выявлять проблемы.
Ожидается, что экспериментальная реализация появится в GCC 15 и Clang 19 уже в 2025 году.
Toolchain и экосистема: что изменится?
Помимо стандарта, на конференции анонсировали важные обновления инструментов:
- CMake 4.0 — полностью переработанная система модулей (C++20 modules) и встроенная поддержка кэширования зависимостей.
- Clangd LSP — улучшенная поддержка рефакторинга для C++26, включая автоматическое преобразование switch в pattern matching.
- Qt 7 — первый публичный превью с поддержкой Safe C++ и новыми виджетами на основе QML с нулевыми накладными расходами.
- Google Abseil — выпустили библиотеку для безопасной работы с сырыми указателями (AbslSafePtr), которая уже используется в Chromium.
Что это значит для разработчиков?
Конференция показала, что C++ не просто сохраняет позиции в системном программировании, играх и высоконагруженных сервисах, но и активно догоняет современные языки по безопасности и удобству. Уже сейчас стоит начать изучать pattern matching и новые возможности std::execution — это существенно упростит код. А инициатива Safe C++ через пару лет может стать обязательной для финансового сектора и авиастроения.
Полные записи докладов доступны на YouTube-канале CppCon, а слайды — в репозитории комитета. Следите за обновлениями на python