Заметки по С++

Короткие заметки о языке C и C++: тонкости синтаксиса, поведение компилятора, подводные камни и любопытные детали стандарта. Формат «одна заметка — один вопрос», удобно читать и находить через поиск.

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

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

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

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

constexpr и compile-time вычисления в современном C++

Введение Современный C++ позволяет переносить часть вычислений с этапа выполнения программы на этап компиляции. Это не просто оптимизация скорости — это способ обнаруживать ошибки раньше, генерировать таблицы и…

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

QProcess: запуск внешних программ и обмен данными через stdin/stdout

Введение Многие приложения должны взаимодействовать с внешними программами: запускать утилиты командной строки, конвертеры, компиляторы, скрипты. В Qt для этого есть класс QProcess, который запускает внешний процесс и предоставляет…

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

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

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

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

Модульное, интеграционное и системное тестирование в C++

Тестирование — критически важная часть разработки программного обеспечения, особенно в C++, где ручное управление памятью и сложные абстракции могут приводить к трудноуловимым ошибкам. В этой статье мы рассмотрим…

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

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

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

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

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

Умные указатели (smart pointers) — это объекты-обертки для «сырых» указателей (raw pointers), которые автоматически управляют временем жизни динамически выделенной памяти. Они были введены в стандарт C++11 для решения…

обновлено