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

Понимая, что это не тонна контекста, у меня есть эта строка:

using GridType = Grid<boost::optional<float>, 2>;

для чего cppcheck говорит:

Redundant code: Found a statement that begins with numeric constant.

Я бы подумал «ложноположительный», но обычно эти инструменты анализа умнее меня, поэтому я хотел проверить, может ли кто-нибудь подумать, почему анализатор может так интерпретировать подобное утверждение?

Я использую cppcheck 1.61 в системе Ubuntu.


person David Doria    schedule 28.07.2016    source источник
comment
Вы должны указать свою версию cppcheck (и, возможно, платформу, на которой вы ее используете).   -  person Jesper Juhl    schedule 28.07.2016
comment
@JesperJuhl Добавлена ​​версия вопроса.   -  person David Doria    schedule 28.07.2016


Ответы (1)


cppcheck в значительной степени основан на сопоставлении с образцом и временами не слишком умен / довольно поверхностен. Он действительно находит кучу хороших вещей, но также имеет много ложных срабатываний. Я бы сказал, что это ложное срабатывание, когда простой ум cppchecks запутался.

Также; версия 1.61 немного устарела. Вы тестировали последнюю версию 1.74, чтобы увидеть, не умнее ли она здесь? (Собрать из исходного кода довольно просто, если его нет в репозитории вашего дистрибутива)

person Jesper Juhl    schedule 28.07.2016
comment
1.74 и 1.73 занимают СУПЕР много времени (много часов, как будто они зависают) на Red Hat 4.8.3-9 (это экземпляр AWS). 1.61 занимает всего пару минут. Я собираюсь продолжать идти назад по списку версий и смотреть, когда он работает лучше. Любая идея, почему это может быть? - person David Doria; 30.07.2016
comment
Без понятия. 1.74 выполняется за десятки минут на кодовой базе, над которой я работаю (~700 000 строк C++). - person Jesper Juhl; 30.07.2016
comment
Он отлично работает с 1.70, очень медленный, но не такой медленный, как более высокие версии с 1.71, и безумно медленный с 1.72. Я думаю, я буду придерживаться 1,70 ...? :) - person David Doria; 30.07.2016
comment
Черт, я только что увидел, что вышла версия 1.75, но она по-прежнему зависает на некоторых моих файлах :( - person David Doria; 25.09.2016