C++ дайджест #23: оптимізація компіляції та підсумки року *[конкурсним балом]: Конкурсний бал — комплексна оцінка досягнень вступника, яка обраховується за результатами вступних випробувань та іншими показниками (оцінки ЗНО або вступних іспитів; середній бал документа про повну загальну середню освіту, переведений у шкалу від 100 до 200; бал за успішне закінчення у рік вступу підготовчих курсів ЗВО для вступу до нього; бали призерам олімпіад, чемпіонатів, призерам МАН) з врахуванням регіонального, галузевого, сільського, першочергового коефіцієнтів. *[DoD]: Definition of Done

Автор або джерело: Наталья Ковалёва

Першоджерело

C++ C++ дайджест,

Повна версія

C++ дайджест #23: оптимізація компіляції та підсумки року

Привіт, мої любі сішники! Вітаю вас з Новим роком та Різдвом! Нехай у цьому році код стає якіснішим, компіляція швидшою, а проекти цікавішими! ;)

Новорічний випуск пропоную присвятити підсумкам року та оптимізації компіляції. То ж почнімо? :)

Підсумки 2019

C++ at the end of 2019 — детальний підсумок в подіях та фактах.

На Meeting C++ запущено опитування, за яким маємо такі цікаві результати (результати актуальні на 10 січня та можуть змінюватися в зв’язку з тим, що опитування ще триває).

Найчастіше зі стандартів використовуються:

Бібліотеки:

Середовище:

Оптимізація часу компіляції

Досить тривалий час компіляція є одним із суттєвих недоліків С++. Хоча тривала компіляція забезпечує нам можливість заварювати каву та переглядати останні новини/дайджести без поспіху, вона може стати суттєвим головним болем перед дедлайном. Тож розглянемо, як оптимізувати.

Герб Саттер для вирішення цієї проблеми пропонує перевірити хедери та використовувати Pimpl, як і хлопці в цьому блозі:

  • Reduce C++ Build Times by Reducing Header Dependencies,
  • Reduce C++ Build Times (Part 2) with the Pimpl Idiom.

Онлайн книга С++ best practices пропонує більш розширений список рекомендацій.

З цієї теми корисно буде почитати:

  • Faster C++ builds;
  • Speeding up the Build of C and C++ Projects;
  • A simple comparison;
  • Making Compiles Slow Through Abuse of Templates.

Відео з CppCon:

  • Optimizing compilation times with Templates
  • Practical Techniques for Improving C++ Build Times

Modern C++

C++20: Concepts — What we don’t get

C++20: Concepts, the Placeholder Syntax

C++ coroutines: Getting started with awaitable objects

A beginner’s guide to C++ Ranges and Views

Корисні посилання

Substitution Failure is Error and Not An Error

Named Template Arguments

What Is MISRA and how to Cook It

Modern C++ type CoDec Challenge

Dry-comparisons: A C++ Library to Shorten Redundant If Statements

Accidentally Overwriting Another Local Variable in C and C++

A Compiler Writing Journey

The Eight Rules of Multithreaded Qt

Open sourcing Google Cardboard

Waiting for std::embed: Very Large Arrays in Clang

C++ UI Libraries

Інструменти

Top 10 Bugs Found in C++ Projects in 2019 PVS studio

CMake 3.16 added support for precompiled headers & unity builds

The Qt Marketplace has landed

A Gentle Intro to Developing C++ Apps for AWS and S3

CLion: Our Plan for Next Year and the 2020.1 Roadmap

Build C++ Applications in a Linux Docker Container with Visual Studio

Оновлення

Цього місяця маємо такі оновлення:

  • CLion 2019.3;
  • Wt & JWt 3.5.0 and Wt 4.2.0;
  • Ogre 1.12.4;
  • boost v.1.72.0;
  • Qt 5.9.9, Qt Installer Framework 3.2.0, Qt 5.14, Qt Visual Studio Tools 2.4.2;
  • Conan 1.21;
  • Unreal Engine 4.24;
  • CryEngine 5.6.5;
  • Announcing NVIDIA PhysX SDK 5.0;
  • Nsight Systems 2019.6;
  • ReSharper C++ 2019.3;
  • PVS-Studio 7.05.

Хвилиночка флуду

← Попередній випуск: C++ дайджест #22
Наступний випуск: C++ дайджест #24 →

[конкурсним балом]: Конкурсний бал — комплексна оцінка досягнень вступника, яка обраховується за результатами вступних випробувань та іншими показниками (оцінки ЗНО або вступних іспитів; середній бал документа про повну загальну середню освіту, переведений у шкалу від 100 до 200; бал за успішне закінчення у рік вступу підготовчих курсів ЗВО для вступу до нього; бали призерам олімпіад, чемпіонатів, призерам МАН) з врахуванням регіонального, галузевого, сільського, першочергового коефіцієнтів. [DoD]: Definition of Done