Шаблоны

Шаблоны классов и функций как инструмент обобщённого программирования. Рассматриваются параметризация типами и значениями и семейства функций и классов, генерируемых компилятором.

01 янв.
salt-caramel

Многопоточность

Причины появления многопоточности, начиная с закона Мура и ограничений роста производительности процессоров. Вводятся базовые понятия потоков и параллельного выполнения.

21 мая
notakeith salt-caramel
,

Концепты

Concepts как современная замена SFINAE-трюков для ограничения шаблонных параметров. Объясняется, зачем нужны концепты и как они делают ограничения читаемыми.

14 мая
notakeith salt-caramel
,

Type traits

Продолжение темы метапрограммирования через type traits вроде is_same. Показывается, как компилятор через специализации шаблонов выводит свойства типов ещё до запуска программы.

07 мая
notakeith salt-caramel
,

Метапрограммирование

Введение в шаблонное метапрограммирование и вычисления на этапе компиляции. Разбирается порядок выбора специализаций шаблонов на примере собственной реализации is_same.

30 апр.
notakeith salt-caramel
,

Tuple

Реализация собственного tuple с использованием шаблонной рекурсии по пакету типов. Разбирается доступ к N-му элементу и различие между TAD и CTAD.

23 апр.
notakeith salt-caramel
,

Parameter pack

Вариативные шаблоны и пакеты параметров, появившиеся в C++11. Показывается рекурсивная обработка аргументов и возможности оператора развёртки пакета.

16 апр.
notakeith salt-caramel
,

Move-семантика

Rvalue-ссылки и move-семантика как способ избегать лишних копирований. Рассматриваются move-конструктор, move-присваивание и сворачивание ссылок.

09 апр.
notakeith salt-caramel
,

Касты

Виды приведения типов в C++ — static_cast, dynamic_cast, const_cast и reinterpret_cast. Разбираются их отличия от C-style cast и ситуации, где каждый из них уместен.

02 апр.
notakeith salt-caramel
,

std::function

Пошаговая реализация собственного аналога std::function. Показывается, как через специализацию шаблона по сигнатуре вызова строится обёртка для произвольных вызываемых объектов.

26 мар.
notakeith salt-caramel
,