Автор: <span>admin</span>

Различные статьи по Qt и c++

Разделение на единицы трансляции: компиляция и линковка, ODR

Введение В этой статье разберём процесс сборки C/C++ программы системно: что представляет собой единица трансляции, как происходит раздельная компиляция и последующая линковка, и что такое One Definition Rule…

Заметки по языку с и с++

Заголовочные файлы и include guards/pragma once, проблема множественного включения

Введение Мы рассматривали include guard вкратце — в этой статье разберём подробно, почему он необходим, как именно проблема множественного включения проявляется без него, и сравним классический подход (#ifndef/#define/#endif)…

Синтаксис си/с++

Препроцессор: #define, макросы, условная компиляция

Введение Ранее мы использовали #ifndef/#define/#endif для include guard без подробного объяснения — в этой статье разберём препроцессор C/C++ системно: текстовые макросы через #define, условную компиляцию, и важные практические…

Синтаксис си/с++

Умные указатели: unique_ptr, shared_ptr, weak_ptr

Введение Мы разбирали ручное управление динамической памятью через new/delete, систематически разберёт RAII как общую философию — умные указатели представляют практическое, готовое к использованию воплощение RAII конкретно для управления…

Синтаксис си/с++

Move-семантика: rvalue-ссылки, std::move, move-конструкторы

Введение До этой статьи все примеры с копированием объектов (про конструктор копирования концептуально) предполагали полное, «глубокое» копирование данных — move-семантика (C++11) предоставляет альтернативу: эффективную «передачу» внутренних ресурсов объекта…

Синтаксис си/с++

Лямбда-выражения: захват переменных, типы захвата

Введение Мы разобрали указатели на функции как способ передачи поведения как параметра — лямбда-выражения (C++11) дают значительно более гибкую, современную альтернативу, способную «захватывать» переменные из окружающего контекста, чего…

Синтаксис си/с++

auto и decltype: вывод типов в современном C++

Введение Все предыдущие примеры явно указывали тип каждой переменной — современный C++ (начиная с C++11) предоставляет auto для автоматического вывода типа переменной из её инициализатора, и decltype для…

Синтаксис си/с++

Специализация шаблонов: полная и частичная

Введение Ранее мы рассматривали единый, обобщённый шаблон, одинаково обрабатывающий любой тип — иногда нужна особая, отличающаяся реализация для конкретного типа (или ограниченного семейства типов) — специализация шаблонов решает…