QPluginLoader: основы динамической загрузки плагинов
Введение Плагин — это код, скомпилированный отдельно от основного приложения и загружаемый в него во время выполнения, а не на этапе компоновки. Это позволяет расширять функциональность приложения без…
Итоговый мини-проект: применение алгоритмов для оптимизации реального Qt-приложения
Введение В заключительной статье цикла, и всего плана статей в его текущем объёме, соберём итоговый проект, демонстрирующий применение разобранных алгоритмов и структур данных для оптимизации реалистичной, практической задачи…
Шаблоны (templates) в C++ для начинающих: от функции до класса
Введение Шаблоны — это механизм обобщённого программирования в C++, позволяющий писать код, работающий с разными типами без дублирования. Вместо того чтобы писать отдельную функцию maxInt, maxDouble, maxString, можно…
CUDA Unified Memory: упрощённое управление памятью CPU/GPU
Введение Традиционная модель CUDA требует явного управления двумя отдельными областями памяти — host (CPU) и device (GPU) — с явным копированием данных между ними. Unified Memory (управляемая память)…
Итоговый мини-проект: умная панель доступа и журналирования событий (RFID + RTC + LCD + зуммер)
Введение В заключительной статье цикла и всего расширенного плана статей собираем мини-проект, объединяющий несколько модулей стартового комплекта в единую, законченную систему — панель контроля доступа: RFID-считыватель проверяет карту,…
Статические vs динамические плагины в Qt: когда что выбрать
Введение Qt поддерживает два принципиально разных режима использования плагинов: динамические (классический случай — отдельные библиотеки, загружаемые в рантайме через QPluginLoader, разобранный в предыдущих статьях) и статические (плагин компилируется…
Строки в C: char*, массивы символов, отличие от std::string
Введение Завершаем первый блок цикла темой строк — в чистом C (и в C++ коде, взаимодействующем с C-API или унаследованным кодом) строки представлены не отдельным типом данных, а…
Концепты (concepts) в C++20: ограничение шаблонных параметров
Введение Одна из главных болей шаблонного программирования в C++ — нечитаемые сообщения об ошибках, когда шаблон используется с неподходящим типом. До C++20 единственным способом ограничить допустимые типы и…
Тестирование QML-кода: Qt Quick Test на практике
Введение Логика, написанная непосредственно в QML и JavaScript (привязки свойств, обработчики событий, кастомные компоненты), нуждается в тестировании не меньше, чем код на C++, но QTest напрямую не предназначен…