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

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

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

Концепты (concepts) в C++20: ограничение шаблонных параметров

Введение Одна из главных болей шаблонного программирования в C++ — нечитаемые сообщения об ошибках, когда шаблон используется с неподходящим типом. До C++20 единственным способом ограничить допустимые типы и…

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

Умные указатели в Qt-коде: когда QSharedPointer, а когда std::shared_ptr

Введение В проектах на Qt разработчик неизбежно сталкивается с выбором: использовать собственные умные указатели Qt (QSharedPointer, QScopedPointer, QPointer) или указатели стандартной библиотеки (std::shared_ptr, std::unique_ptr, std::weak_ptr). Исторически Qt появился…

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

Потокобезопасные структуры данных в Qt-приложениях: паттерны и ошибки

Введение При переходе от однопоточного кода к многопоточному самая частая ошибка — продолжать использовать обычные контейнеры (QVector, QList, QMap, std::vector) из нескольких потоков без какой-либо синхронизации, считая их…

Cmake

Интеграция Boost в Qt-проект с использованием CMake

Архитектурная Ключевой принцип:никаких глобальных include_directories, только target-based linking. Структура проекта Пример использования Boost внутри Qt Будем использовать: FileService.h FileService.cpp MainWindow.h MainWindow.cpp main.cpp CMakeLists.txt (Qt6 + Boost) Что происходит…

Cmake

Архитектура Qt-приложений + CMake

Цели архитектуры Qt-проекта Хороший Qt-проект: CMake здесь — не просто билд-система, а средство описания архитектуры. Слоистая структура (Layered Architecture) Типовая схема: Каждый слой — отдельная библиотека. Модульность через…

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

Шаблон CMake-проекта с переключениями библиотеками тестирования

Этот шаблон проекта позволяет легко переключаться между различными фреймворками тестирования в C++/Qt: Структура проекта (предполагаемая) Шаблон Как собрать

обновлено
Заметки по языку с и с++

Подключение популярных фреймворков тестирования к Qt-проекту

Qt поддерживает встроенное тестирование через QTest, но при разработке на C++ часто возникает необходимость использовать внешние фреймворки: Google Test, Catch2, Doctest, Boost.Test. В этой статье сравниваются и описываются…

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

Флаг компиляции QT_DISABLE_DEPRECATED_BEFORE=0x060000 в Qt

Что это за флаг? QT_DISABLE_DEPRECATED_BEFORE — это предпроцессорный флаг, позволяющий отключать устаревшие API Qt, объявленные до определённой версии. Он активно используется при подготовке проектов к переходу на новую…

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

Лямбда-выражения и функторы в C++

Современный подход к функциональному программированию Современный язык программирования C++ предлагает множество инструментов для написания лаконичного, эффективного и выразительного кода. Одним из таких инструментов являются лямбда-выражения и функторы, которые…

обновлено