C++ дайджест #9: як працює Clang-Tidy, матеріали з CppCon 2018
Привіт, мої любі сішники! Цього разу пропоную розглянути підходи для роботи з кодом та, як завжди, декілька статей про modern С++ та улюблені інструменти для розробки. Починаємо? :)
Інструменти та підходи для роботи з кодом
Exploring Clang Tooling Part 1: Extending Clang-Tidy
Турботливі автори статті розповідають, як саме Clang-Tidy може допомогти з рефакторингом коду, починаючи від git clone та закінчуючи невеликим та зрозумілим прикладом використання.
Exploring Clang Tooling Part 2: Examining the Clang AST with clang-query
У другій частині матеріалу нам надають більш глибокі деталі: як саме працює Clang-Tidy та як використовувати AST(Abstract Syntax Tree).
Modern Qt Development: The Top 10 Tools You Should Be Using
У статті коротко описується, навіщо потрібні GammaRay, Clazy, HotSpot, Clang Tidy, apitrace, Kernel/System Profiler, Heaptrack, CI та наводяться посилання для подальшого вивчення та використання описаних інструментів. Такий собі дайджест всередині дайджесту. Делегування :)
The Value of Undefined Behavior
Роздуми про невизначенну поведінку з розглядом двох розповсюджених випадків.
Unusual memory bit patterns
Описані memory bit patterns, які використовуються в режимі дебагу при відладці у VS. По відповідності значення можна на око прикинути, що саме трапилося з пам’яттю при використанні одного лише дебагера.
Modern C++
Standard Library Algorithms: Changes and Additions in C++17
У статті розглядаються нові алгоритми, що були додані в C++17, а саме: sample, for_each_n, searchers, алгоритми суми, видалення, паралельні алгоритми, clamp, gcd() та lcm().
How to Use Class Template Argument Deduction
Наведено опис та використання виводу шаблонних аргументів для класів.
A Case Where Using Auto Leads to Undefined Behaviour
Jonathan Boccara розглядає, як auto + обхід std::deque<bool> може спричинити невизначену поведінку. На мою думку, найважливіший висновок зі статті — це ще одне підтвердження, що для обходу контейнерів варто використовувати ітератори замість доступу за індексом.
+!!"" - Який тип отримаємо? Детальний розбір в статті.
Корисні посилання
Milestone | New Home | Trip Reports
У вересні відбулася довгоочікувана CppCon 2018. У статті є дуже корисні посилання на trip reports з цієї конференції, а також на презентації спікерів.
Bjarne Stroustrup Interview at CppCon 2018
Інтерв’ю від батька С++, яке не можна пропустити.
Використання автоматичних параметрів у варіативних шаблонах в C++17
Хто ще не бачив — чудова стаття про автоматичні параметри варіативних шаблонів від нашого колеги Євгена Хуторного.
Changes between C++14 and C++17 DIS
Корисний список змін між C++14 та C++17.
Оновлення
Оновлення Valgrind 3.14.0. Обіцяють, попередню пiдтримку High Sierra.
Qt: вийшло оновлення для Qt 4.9 з фіксами Qt 5.9.7, найменш використовувана система збирання за версією розробників Qt — Qbs оголошена як deprecated, релізи Qt Creator 4.7.2, Qt 3D Studio 2.1 , Qt 5.12 LTS.
CUDA 10 — вітаємо за підтримкою Turing GPU!
Для новачків
Корисні youtube-канали:
Хвилиночка флуду
Java vs C++: Trading UB for Semantic Memory Leaks (Same Problem, Different Punishment for Failure) що краще — java чи С++? :)
← Попередній випуск: C++ дайджест #8