cppcheck.exe сам по себе не запускается — запуск происходит либо после сохранения файла с исходниками, либо после использования команды «проверить». Будет очень здорово, если вы более точно опишете последовательность действий для воспроизведения проблемы.
Если уж valgrind ничего не нашёл — возможно в коде действительно нет утечек:)
На самом деле, можно расчитывать только на то, что утечек не было при этом конкретном запуске. Запросто могут быть варианты выполнения программы, которые в этом запуске не были пройдены, но которые привели бы к утечке. В этом существенная разница между программами вроде valgring и статическими анализаторами. Статический анализатор может просто посмотреть на код и увидеть в нем ошибку даже если этот код никогда не вызывается.
сказать ему что есть важное письмо, а не очередной сраный нотификейшн
Может быть, ситуация исправится, если (ну вдруг) будет меньше таких «очередных» ненужных уведомлений? Иначе получается, что почта без «дойти пешком и пнуть» по сути не работает в качестве средства доставки сообщений.
Это тот самый assert, который разворачивается в ((void)0) в release конфигурации? Если да, то он поможет исключительно в случае, когда управление пройдет через строку с ним и непременно в отладочной конфигурации, это обычно бывает с часто вызваемым кодом или при наличии очень хорошего тестового покрытия. А статический анализ найдет такой фрагмент, даже если код с ним никогда не вызывается.
Так что assert, конечно, очень полезен, но далеко не панацея.
Level 4 displays all level 3 warnings and informational warnings.
т.е. уровень 4 объединяет в себя «informational warnings». Выключены по умолчанию предупреждения самых разных уровней, например, C4906 имеет уровень 1, выключено по умолчанию и очень даже предполагает наличие неопределенного поведения.
Как-как вы сказали? Статический анализ? Контроль версий? Окститесь, родные! C++ — язык для программистов. Физики пишут на Фортране!
Особенно печально, что при таком восприятии контроль версий каким-то непостижимым образом оказывается связан с C++, который «для программистов». Вот в Википедии у каждой статьи есть история — по сути, тот же контроль версий. Видимо, Википедия тоже «для программистов».
Если аналогичную вещь сделать в Visual C++, то перестает компилироватьca любой проект, включающий в себя заголовки Microsoft SDK, которые нужны для использования Windows API.
Дело не в возможностях, а в политике списания более ранних версий. Как только 2012 R2 станет доступной, начнется списание 2008 R2, придется относительно быстро переходить как минимум на версию 2012, а это большой объем тестирования, хочется понимать, когда закладывать время на него.
Есть какие-нибудь прогнозы о том, когда эта версия станет доступна для использования в качестве гостевой ОС в «облачных сервисах» (web/worker роли) в Azure?
Не просто абстрактная «безопасность». Провайдеру облака очень не хочется держать ботнет размером с целый центр обработки данных, который обязательно образуется, если найдется интересная уязвимость, а всех пользователей не обновят достаточно быстро.
Так что assert, конечно, очень полезен, но далеко не панацея.