cppcheck выдает предупреждение на const std :: string [] - PullRequest
0 голосов
/ 01 ноября 2018

Я борюсь с предупреждением, что cppcheck (версия 1.85 на компьютере с Linux) сообщает:

someFile.h: 23: 29: предупреждение: избыточный код: найден оператор, который начинается со строковой константы. [ConstStatement]
const std :: string OffOn [] = {"off", "on"};
^

Я провел некоторое исследование и обнаружил, что меняя выражение на

const std::string OffOn[]= {std::string("off"), std::string("on")};

удаляет предупреждение. Однако я не понимаю, что происходит, и что «плохо» в моем первом решении. Может быть, кто-то может мне это объяснить? Или дай мне несколько подсказок!

1 Ответ

0 голосов
/ 01 ноября 2018

Рекомендуется использовать инициализацию с braced-init-list, например: const std::string OffOn[]{"off", "on"};, поэтому = просто не требуется.

...