Анализатор обнаружил конструкцию, которую потенциально можно оптимизировать. Для того чтобы определить строка пустая или нет, используется функция strlen или аналогичная ей.
Пример кода:
if (strlen(strUrl) > 0)
Этот код корректен, однако если он используется внутри длинного цикла или если мы работаем с длинными строками, то такая проверка может быть неэффективна. Для того чтобы проверить, пустая строка или нет, нам достаточно сравнить первый символ строки с 0. Оптимизированный вариант:
if (strUrl[0] != '\0')
Иногда предупреждение V805 помогает выявить избыточный код. В одном из приложений, был найден приблизительно такой код:
string path;
...
if (strlen(path.c_str()) != 0)
Скорее всего, такой код появился в ходе неаккуратного рефакторинга, когда тип переменной path был заменен с простого указателя на std::string. Упрощенный и быстрый вариант:
if (!path.empty())