Мир C++ активно развивается, сообщество программистов обсуждает новые фичи, инструменты и лучшие практики. В этой статье собраны полезные материалы, которые стоит посмотреть каждому C++ разработчику.

Введение

Каждый уважающий себя разработчик — а вы тут все такие, мы уверены, — интересуется тем, что происходит в его сфере. Да, языки всегда развиваются, но откуда брать актуальную информацию и черпать вдохновение?! Всё просто! Надо быть подписчиком PVS-Studio!

Посмотреть

Вебинар: С++ и неопределённое поведение

Внимательные читатели помнят, что мы публиковали целых 12 частей книги "Путеводитель C++ программиста по неопределённому поведению". Если забыли или не читали, то вот вам ссылочка.

Так вот, совместно с автором этой книги, Дмитрием Свиридкиным, мы записали вебинар. Обсудили грани, отделяющие корректный C++ код от некорректного, попросили рассказать историю написания книги, поговорили о развитии языка C++ и его будущем.

Pure Virtual Cast / Эволюция подходов к парсингу C++ в PVS-Studio

Нужен ли полноценный парсер? Если нужен, то почему? Можно ли использовать готовые парсеры? Зачем может понадобиться собственный парсер? На все эти и другие вопросы отвечает наш специалист на подкасте Pure Virtual Cast.

Разрушители мифов: С++ уже не торт

Довольно сухих фактов о C++. Время поговорить про мифы! С++ существует уже больше 40 лет. За это время появилась целая куча мифов и небылиц о нём. Мы будем вместе опровергать или подтверждать их. Действительно ли С++ непрост для новичков? С++ устарел и больше никому не нужен? Ответы найдёте в этом докладе.

Статический анализ C++ кода по ГОСТ Р 71207-2024

1 апреля 2024 года введён в действие ГОСТ Р 71207-2024: Статический анализ программного обеспечения. Он определяет, что должны уметь инструменты анализа кода, и как с их использованием должен строиться процесс безопасной разработки.

В этом докладе обсудили, какие критические ошибки должны выявлять инструменты и каким другим требованиям удовлетворять, чтобы их можно было использовать при разработке безопасного ПО.

Кстати, чтобы лучше разобраться в этом ГОСТе, рекомендуем почитать мини-книгу от Андрея Карпова по этой теме. Получить её можно по ссылке.

C++ линтеры — хорошо, но недостаточно

Непосвящённым разработчикам кажется, что многие ошибки можно находить чуть ли не регулярными выражениями. Да, но нет. На заре появления линтеров так и было. Современные статические анализаторы кода — это куда более сложные и интересные системы. В этом вебинаре разбираемся, почему линтеры остались в прошлом, и какие технологии требуются для нахождения тех или иных ошибок.

Семантика для кремниевых мозгов

Интересный доклад от архитектора C++ анализатора PVS-Studio с конференции C++ Zero Cost Conf 2024 про семантику языка с точки зрения статического анализатора или фронтенда компилятора.

Почитать

"Вредные советы для C++ программистов"

Нашумевшая книга от сооснователя PVS-Studio Андрея Карпова, которая собирает много положительных отзывов. Она будет полезна как опытному разработчику, так и новичку.

Книга представляет собой сборник "вредных советов", которые помогут избежать типичных ошибок. В общем, вы узнаете, как не стоит программировать на C++, и заодно прокачаете свои навыки.

У нас есть электронная версия этой книги. Скачать её можно по ссылке. А печатную версию ищите на наших стендах на конференциях!

"Путеводитель C++ программиста по неопределённому поведению"

Выше мы уже упоминали об этой книге. Теперь поподробнее.

Это электронная книга, которая посвящена неопределённому поведению. Печатная версия, возможно, будет. Следите за новостями.

Если кратко, то в книге разбирается следующее:

  • что такое неопределённое поведение;

  • переполнение целых знаковых чисел;

  • бесконечные циклы и проблема остановки.

И многое другое.

Все части книги мы собрали в этой заметке.

Поразвлечься

Квиз по неопределённому поведению от Дмитрия Свиридкина

Как только вы закончите знакомство с книгой "Путеводитель C++ программиста по неопределённому поведению", предлагаем пройти квиз. Вы должны угадать, как будут вести себя 10 кринжовых примеров кода. А в конце вас ждёт подарок! Пройти квиз можно по этой ссылке.

C++ квиз от PVS-Studio и Сергея Кушниренко

Команда PVS-Studio вместе с Сергеем Кушниренко подготовила квиз на основе ошибок, описанных в его статьях.

Ваша задача — найти ошибки в коде. Но предупреждаем, ошибки не такие уж и простые! В этом квизе вы найдёте 18 фрагментов кода. В каждом фрагменте спряталась ошибка. Какая — решать вам, мы лишь предложим варианты ответа.

Проверить свою внимательность можно по этой ссылке.

Кто ты в мире C++

Задавались ли вы таким вопросом? Если да, то этот тест для вас! Есть две категории, к которым мы вас причислим после прохождения: умные или красивые. Третьего не дано. Вас будут ждать 10 вопросов, на них нужно ответить искренне.

Пройти тест можно и нужно тут.

Заключение

Это далеко не все крутые материалы от нашей команды. Мы ещё и статьи пишем, их можно почитать в нашем блоге. Да и сколько ещё у нас будет вебинаров, докладов и квизов... не сосчитать!

Но чтобы это всё не пропустить и оставаться в курсе событий, обязательно присоединяйтесь к нам:

ВКонтакте: https://vk.com/pvsstudio_rus

Telegram: https://t.me/pvsstudio_rus

До скорого!

Комментарии (6)


  1. OldFisher
    04.06.2025 11:03

    Да... Вырос единорог, закабанел... Да и микрофлору, видать, укрепил хорошенько.


  1. Emelian
    04.06.2025 11:03

    Кто ты в мире C++

    Ну, лично я, любитель. Поэтому, меня больше интересуют более практические, хотя и простые, вопросы. Например, как изменить цвет заголовка окна (title bar), так, чтобы при этом не терялся доступ к системному меню (при нажатии мышкой на иконке окна) и кнопкам управления окна?

    Да, я знаю ответ, что «никак», стандартными способами, либо за счет рисования собственного фрейма, как это любят делать китайцы (например, в библиотеке DuiLib). Но, все же, неужели нельзя изобрести более элегантный способ? А то мы все более предпочитаем говорить о «сферическом коне в вакууме» :) .


  1. CatAssa
    04.06.2025 11:03

    как изменить цвет заголовка окна (title bar), так, чтобы при этом не терялся доступ к системному меню

    Вы хоть скажите, с чем работаете.


    1. Emelian
      04.06.2025 11:03

      Вы хоть скажите, с чем работаете.

      C++ / WTL либо C++ / WinAPI, в крайнем случае, C++ / MFC, Но можете дать пример, на Qt, wxWidgets либо Win32++. Главное, понять идею. То, что предлагают ИИ сервисы, заключается в рисовании в неклиентской области, но при этом теряется доступ к системным элементам управления. Да, иконку окна можно тоже нарисовать, вместо оригинальной, но доступа к системному меню вы лишитесь. Аналогичные проблемы с рисованием в обычном меню окна. Поэтому, китайцы фрейм и меню эмулируют.


  1. Jijiki
    04.06.2025 11:03

    я бы именно в С++ посоветовал в математике быть внимательным, если хотим своё решение, при сравнении с поведением к принятию кода с С есть существенные нюансы, и походу они очень глубоки если изучать принципиально -O3 компиляцию и хендл адреса(или когда слетает указатель по каким-то причинам) я парочку нашел, и могу поидее сравнить с С++), С может быть хорошей альтернативой если знаем базу и понимаем что как, он соберется спокойно с -O3 если вспомним потомучто в С нету зависимости, тогда как в С++ внутренние конструкции могут не собраться с -O3

    например sqrt в С++ не такое поведение мне выдаёт, и есть походу еще в математике нюансы у С++), тоесть даже отказаться в условиях С++ от СТЛ непозвожно поидее, чтобы был старт как с С

    ну и абс вытекает из sqrt

    Анриал интересно собирает проект -O3 -ffast-math?

    даже не знаю что лучше С или С++, мне оч нравится скорость в С) я к ней привык)


  1. SIISII
    04.06.2025 11:03

    Протестировали меня :) Правда, часть вопросов (и, соответственно, ответов) для моего случая годится, скажем так, плохо. Как прикажете писать тесты для драйвера, работающего с голым железом? Особенно если само железо глючное, а глюки в Эррате только упомянуты -- и то в лучшем случае?