C++ дайджест #11: підсумки року, реліз Visual studio 2019
Привіт, мої любі сішники! Вітаю вас з Новим роком! Бажаю вам чистого коду, цікавезних задач, від яких перехоплює подих, та стабільного ТЗ! Пропоную в цьому дайджесті підвести підсумки року та, як завжди, розглянути декілька статей про modern С++ та улюблені інструменти для розробки. Починаємо? :)
Підсумки року в світі С++
C++ at the End of 2018 — скарбничка, в якій описано все життя С++ в 2018. У статті перераховано усі зустрічі комітету по стандартизації з посиланнями на репорти, найвизначніші конференції, розглянуто підтримку стандартів компіляторами, перелічено інструменти, які необхідні для розробки або значно спрощують життя, та їх поточний статус. Містить хорошу підбірку літератури. Розглянуто питання складності С++. Стаття обов’язкова для читання: таке не можна пропустити :)
Посилання на трендові open source проекти на GitHub 2018 року.
Getting You There — Your C++ Standardization Efforts in 2019 — автор пише про свій досвід участі в стандартизаціЇ С++.
Call For Submissions — конференція C++Now чекає заявок на презентацію.
Інструменти
Однією з найвизначніших подій грудня можно сміливо назвати реліз Visual Studio 2019: Visual Studio Live Share, покращення швидкодії, Git stash, покращений Look & Feel та багато іншого.
Деталі можно почитати в статтях:
Making every developer more productive with Visual Studio 2019.
Honest Review of Visual Studio 2019 Preview 1.
Exploring Clang Tooling — Using Build Tools with clang-tidy — продовження циклу статей про Сlang-Tidy. В цій частині йдеться про рефакторинг при роботі з групою файлів, взаємодію з Ninja та CMake.
bake — новенький менеджер пакетів.
QtCreator CMake for Android plugin — плагін від KDAB, що дозволяє безболісно створювати андроїд застосунки в зв’язці Qt, CMake та QtCreator.
Modern C++
A brief introduction to Concepts — Part 1, a brief introduction to Concepts — Part 2 — автор надає гарні аргументи для розуміння про concepts та як їх використовувати на прикладах.
Stop with the CTAD FUD! — про сюрпризи при виведенні аргументів шаблону класу.
How to Use The Newest C++ String Conversion Routines — std::from_chars — навіщо потрібен std::from_chars, якими компіляторами підтримується, приклади використання.
Overview of std::map’s Insertion / Emplacement Methods in C++17 — описано різницю між методами вставки елемента до std::map. Гарна інструкція щодо того, коли та який метод зручніше використовувати.
C++ Core Guidelines: Rules for Variadic Templates — чудовий опис того, коли доречно та як саме застосовувати Variadic Templates.
Корисні посилання
OpenCV 4.0.0 new Graph API (G-API) розглядає нову модель роботи з OpenCV, при якій ми створюємо конвейер операцій та застосовуємо його вже до конкретних даних.
Qt: Tableview performance — аналізує проблему швидкодії TableView до Qt-5.12, містить приклад, на якому можна подивитися на покращену швидкодію TableView в Qt-5.12.
Google C++ Style Guide — Code Style від Google (і вони обирають spaces!).
Performance: C++ vs Rust — точка зору про порівняння C++ та Rust, що заснована на логічних аргументах. Автор не підкріплює думки цифрами, але почитати цікаво.
Секреты тернарного оператора — стаття з Хабру про те, де можна використовувати тернарний оператор на відміну від if() та небезпеки, які в ньому ховаються.
Deciphering the postcard sized raytracer — розгляд коду, створеного Andrew Kensler для рейтресингу.
TODO_BEFORE(): A Clean Codebase for 2019 — як з’являється tech debt() та як з цим жити далі.
Оновлення
Цього місяця маємо такі оновлення:
- ReSharper C++ 2018.3
- Qt: Qt 3D Studio 2.2, Qt Creator 4.8.0, Qt 5.11.3 Released, Qt Visual Studio Tools 2.3.0, Qt Installer Framework 3.0.6
- wxWidgets 3.1.2
- PhysX SDK 4.0
- GitLab 11.6, 11.5.5, 11.4.12, 11.3.14
- Boost 1.69.0
- LLVM 7.0.1
Для новачків
7 Best C++ Tutorial, Course & Certification [2018 — 2019]
C++ Quick Reference
C++ Tutorial for Beginners
Хвилиночка флуду
Сподіваюсь, що ялинка вже наряджена. Та якщо ви не встигли до дедлайну — тримайте лайфхак: Новорічна ялинка на github.
Більше варіантів новорічних ялинок на stackexchange :)
А наостанок — новорічний календар:
← Попередній випуск: C++ дайджест #10