Эти дефекты обнаруживают проблемы, такие как ненужные копии данных и неэффективные стандартные функции C++, которые могут привести к узким местам эффективности в Коде С++. Дефекты включают:
const
параметры или возвращаемые значения, обеспечивающие копию вместо операций пересылки
Неэффективные функции для вставки новой строки и расчета длины строки
A move operation may throw | Бросок операций пересылки может привести к контейнерам STL с помощью соответствующих операций копии |
Const parameter values may cause unnecessary data copies | Значения параметров const могут предотвратить операцию пересылки, приводящую к более интенсивной эффективностью операции копии |
Const return values may cause unnecessary data copies | Возвращаемые значения const могут предотвратить операцию пересылки, приводящую к более интенсивной эффективностью операции копии |
Const std::move input may cause a more expensive object copy | Const std::move введите не может быть перемещен и результаты в более дорогой операции копии |
Empty destructors may cause unnecessary data copies | Объявленные пользователями пустые деструкторы предотвращают автоматическую генерацию конструкторов перемещения и перемещают операторы присваивания |
Expensive constant std::string construction | const объект строки создается форма постоянные данные, приводящие к неэффективному коду |
Expensive copy in a range-based for loop iteration | Переменная цикла основанного на области значений for цикл копируется с элементов области значений вместо того, чтобы быть сосланным, приводя к неэффективному коду |
Expensive std::string::c_str() use in a std::string operation | std::string операция использует выход std::string::c_str метод, приводящий к неэффективному коду |
Expensive pass by value | Параметр может быть дорогим, чтобы скопировать |
Expensive return by value | Функции возвращают крупносерийный выходной параметр значением вместо ссылкой или указателем |
Inefficient string length computation | Длина строки, вычисленная при помощи длины строки, функционирует по возврату из std::basic_string::c_str() вместо того, чтобы использовать std::basic_string::length() |
Missing constexpr specifier | constexpr спецификатор может используемый по выражению для оценки времени компиляции |
std::endl may cause an unnecessary flush | std::endl используется вместо более эффективного \n |
std::move called on an unmovable type | std::move используемый на типе класса без конструктора перемещения или оператора присваивания перемещения |
Группы дефекта средства поиска ошибки
Средства проверки дефекта Средства поиска Ошибки классифицируются в группы, такие как поток данных, параллелизм, числовой, и так далее.