Предупреждение C26495
Переменная "переменная" неинициализирована. Всегда инициализировать переменную-член (type.6).
Замечания
Переменная-член не инициализирована конструктором или инициализатором. Убедитесь, что все переменные инициализированы в конце построения. Дополнительные сведения см. в разделе "Основные рекомендации по C++ Type.6 и C.48".
Эта проверка является внутрипроцессной. При каждом вызове функции к неконстной функции-члену проверка предполагает, что эта функция-член инициализирует все члены. Эта эвристика может привести к пропущенным ошибкам и на месте, чтобы избежать ложноположительных результатов. Кроме того, если элемент передается неконстной ссылкой на функцию, проверка предполагает, что функция инициализирует элемент.
Имя анализа кода: MEMBER_UNINIT
Пример
В следующем примере создается предупреждение C26495, так как переменная-член value
не инициализирована при MyStruct
создании объекта.
struct MyStruct
{
int value;
MyStruct() {} // C26495, MyStruct::value is uninitialized
};
Чтобы устранить проблему, можно добавить инициализацию класса ко всем переменным-членам.
struct MyStruct
{
int value{}; // empty brace initializer sets value to 0
MyStruct() {} // no warning, MyStruct::value is set via default member initialization
};