cppcheck считает, что у меня есть «Избыточный код: найден оператор, начинающийся с числовой константы»

Cppcheck (версия 1.46.1) выдает следующее предупреждение для такого перечисления:

enum DATABASE_TYPE
{
    DATABASE_TYPE_UNKNOWN = -1, // <- line of warning
    DATABASE_TYPE_ORACLE,
    DATABASE_TYPE_MSACCESS
};

Избыточный код: обнаружен заявление, что начинается с числовой константы

Не думаю, что это избыточно. Очень важно иметь возможность делать такие вещи.

Это ошибка cppcheck или я чего-то не вижу?

Обновление

Мне удалось свести это к минимальному примеру. Это было осложнено тем, что cppcheck содержал еще 2 ошибки, из-за которых казалось, что мои сокращения не повлияли.
Всего 5 файлов: ah , a.cpp , bh , b.cpp и inc.h со следующим содержанием.
VC9 компилирует его без предупреждений (уровень предупреждения 4).

// a.h
#pragma once
#include "inc.h"

// a.cpp
#include "a.h"
#include "b.h"

int main()
{
    return 0;
}


// b.h
#pragma once
#include "inc.h"

// b.cpp
#include "b.h"

//inc.h
#pragma once

enum MY_ENUM_TYPE
{
    INVALID_VALUE = -1,
    FIRST_VALUE,
    SECOND_VALUE
};

Итак, к настоящему времени я почти уверен, что это ошибка cppcheck. Есть разные мнения?

7
задан foraidt 2 February 2011 в 14:14
поделиться