Visual Studio 2017 не генерирует никаких предупреждений, если переменные не инициализированы? - PullRequest
2 голосов
/ 18 июня 2019

Проблема с Visual Studio и предупреждения при неинициализированных переменных

Я пробовал другой компилятор, такой как Clang. Clang смог генерировать предупреждения.

//clang 3.8.0
//MSVS 2017
#include<iostream>
using namespace std;

class dummy
{
public:
    void dummyFunction()
   {
        static_cast<int>(m_DummyVariable);
   }
private:
    double m_DummyVariable;
};

int main()
{
    dummy obj;
    double outside;
    static_cast<int>(outside);
    obj.dummyFunction();
    return 0;
}

Я ожидал получить три предупреждения, поскольку онлайн-клан смог это сделать. Однако в Visual Studio независимо от уровня предупреждения (1,2,3,4 или всех параметров предупреждений), который я установил в свойствах проекта, я не смог получить никаких предупреждений. Нужно ли менять какое-либо свойство моего проекта?

1 Ответ

0 голосов
/ 18 июня 2019

Если вы щелкнете правой кнопкой мыши по своему проекту и нажмете свойства, перейдите вниз и нажмите «Анализ кода». Изменение набора правил на Microsoft All Rules, а также установка флажка для запуска анализа кода при сборке заставляет меня появляться предупреждения. Стоит отметить, что как только я отправляю внешнюю переменную в стандартный вывод, Visual Studio выдает предупреждение и ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...