Привет, Хабр! Сегодня я хочу вам представить подборку интересных новостей и материалов из мира C++ за последние две недели.

Приятного чтения!

⚡️️ Новости и релизы

  1. Qt 6.6 — Добавление LayoutItemProxy, призванного упростить создание адаптивных макетов (англ. layout); введение Qt Graphs, объединяющего древние Qt DataVisualization и Qt Charts в один современный фреймворк; улучшенный захват окон; значительное упрощение конфигурации Qt GRPC и Qt Protobuf и прочее.

???? Статьи

  1. ???????? Habr: Compile Time Dependency Injection в С++: как обуздать зависимости не прибегая к позднему связыванию — Как работает внедрение зависимостей и какие каждодневные проблемы оно решает?

  2. ???????? Habr: Вглубь std::unordered_map: магические числа — О том, какое волшебство скрывают внутри себя стандартные хэш-таблицы с небольшим погружением в их реализацию в libstdc++.

  3. ???????? Habr: Сборка мусора: как это делается в системном программировании — О RCU, одном из методов обеспечения неблокирующего совместного использования данных в разных потоках.

  4. ???????? Habr: Глубина кроличьей норы: бинарная граница и ABI C++ — О том, что такое ABI и бинарные границы, и какие проблемы могут возникнуть при их пересечении.

  5. Macro Arena: SObjectizer Tales, Prelude — Знакомство с SObjectizer, фреймворком для построения параллельных и многопоточных программ, поддерживающим акторную, Publish-Subscribe и CSP модели.

  6. Macro Arena: SObjectizer Tales, Producing Images — Углубленное знакомство с SObjectizer на примере разработки программы, отображающей и анализирующей информацию с камеры.

  7. Bartłomiej Filipek: Spans, string_view, and Ranges — Four View types — Обзор всех проекций данных (англ. views), сущствующих в С++: от std::string_view (C++17) до std::mdpsan (C++23).

  8. Sandor Dargo: How to compare signed and unsigned integers in C++20? — О том, как современный C++ решает проблему сравнения знаковых и беззнаковых целых чисел между собой.

  9. Andreas Fertig: Using C++23s constexpr unique_ptr — Знакомство с constexpr unique_ptr (С++23).

  10. Arthur O’Dwyer: How boost::is_base_of matches private and (or) ambiguous bases — Срыв покровов с механизмов работы boost::is_base_of (осторожно, в тексте 14 ссылок на стандарт!)

  11. Rainer Grimm: C++20: Module Support of the Big Three — Обзор текущего состояния поддержки модулей в clang, gcc и msvc.

  12. Rainer Grimm: Special Allocators with C++17, — Практические примеры использования полиморфных аллокаторов.

  13. Rainer Grimm: Optimization with Allocators in C++17 — О том, как полиморфные аллокаторы позволяют оптимизировать наш код: добиться большей производительности и переиспользования памяти.

  14. Qt Creator 12: CMake Update — Обзор улучшений в плане поддержки CMake в грядущем мажорном релизе (запланированном на ноябрь): добавление поддержки CMake Debugger, CMake Profiler; улучшение навигации, добавление поддержки сниппетов и автодополнения для CMakeLists.txt.

???? Видео и доклады

  1. Jason Turner: C++ Weekly — Ep 396 — emplace vs emplace_hint! What's the difference? — Обзор всех emplace, существующих в стандартной библиотеке: emplace_back, emplace_front, try_emplace, emplace_hint и не только.

  2. Jason Turner: C++ Weekly — Ep 397 — std::chrono Quickstart With C++20 Calendars — Быстрое введение в std::chrono, нововведение C++20.

C++ Con 2023

  1. Bjarne Stroustrup: Delivering Safe C++ — О подходе к написанию программ на C++, исключающем наличие утечек памяти, висящих указателей и попыток обращения за границы выделенной памяти.

  2. Bret Brown, Bill Hoffman: Libraries: A First Step Toward Standard C++ Dependency Management — Презентация совместных наработок Bloomberg и Kitware (разработчика CMake) в области создания единого формата метаданных для описания плюсовых библиотек: header-only, статических и динамических.

  3. Herb Sutter: Cooperative C++ Evolution – Typescript for C++ — Личный взгляд председателя WG21 (Комитет по стандартизации C++) на идеалы эволюции C++.

  4. Andrei Alexandrescu: Robots Are after Your Job: Exploring Generative AI for C++ — Рассуждение: какую часть работы мы можем уверенно делегировать генеративному ИИ, а какие уникальные человеческие навыки мы должны сохранить и усовершенствовать?

Дайджест составлен и опубликован при поддержке московского сообщества программистов C++ Moscow

Заметили ошибку или опечатку? Сообщите в личку (telegram, habr)

Комментарии (3)


  1. neon1ks
    16.10.2023 17:29
    +1

    Релиз Qt Creator 12 запланирован на ноябрь: https://wiki.qt.io/Qt_Creator_Releases


    1. eoanermine Автор
      16.10.2023 17:29

      Спасибо большое, поправил!


  1. domix32
    16.10.2023 17:29
    +1

    C++20: Module Support of the Big Three

    Вроде что-то работает, но всё также не юзабельно. В среднем понятно, что оно всё сильно драфтовое, но сама статья довольно бесполезная, разве что флаги компиляции забрать. Вот это будет более полезно.