Эти дефекты обнаруживают проблемы, которые могут привести к узким местам эффективности в Коде С++. Обнаруженные проблемы включают:
Проблемы, которые непреднамеренно вызывают копию вместо операций пересылки
Неэффективное или ненужное создание временной переменной
Использование функции, которая имеет возможно более эффективную альтернативу
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 rvalue reference parameter may cause unnecessary data copies | const - мыс rvalue ссылки предотвращает предназначенную операцию пересылки |
Const std::move input may cause a more expensive object copy | Const std::move введите не может быть перемещен и результаты в более дорогой операции копии |
Empty destructors may cause unnecessary data copies | Объявленные пользователями пустые деструкторы предотвращают автоматическую генерацию конструкторов перемещения и перемещают операторы присваивания |
std::move called on an unmovable type | std::move используемый на типе класса без конструктора перемещения или оператора присваивания перемещения |
Move operation uses copy | Конструктор перемещения или оператор присваивания перемещения используют операции копии на базовых классах или элементах данных |
Expensive constant std::string construction | Объект постоянной строки создается форма постоянные данные, приводящие к неэффективному коду |
Expensive copy in a range-based for loop iteration | Переменная цикла основанного на области значений for цикл копируется с элементов области значений вместо того, чтобы быть сосланным, приводя к неэффективному коду |
Expensive local variable copy | Локальная переменная создается копией с const ссылка и не измененный позже |
Expensive pass by value | Параметр может быть дорогим, чтобы скопировать |
Expensive return by value | Функции возвращают крупносерийный выходной параметр значением вместо ссылкой или указателем |
Missing constexpr specifier | constexpr спецификатор может использоваться на переменной или функции для оценки времени компиляции |
Expensive std::string::c_str() use in a std::string operation | Вместо std::string объект, строковая операция использует струну до, полученную из std::string функции включая std::string::c_str , std::string::data() , std::string::at() , или std::string::operator[] , получившийся в неэффективном коде |
Expensive use of non-member std::string operator+() instead of a simple append | Лицо, не являющееся членом какой-либо организации, std::string operator+() функция вызвана когда добавление (или += ) метод был бы более эффективным |
Expensive use of std::string methods instead of more efficient overload | std::string метод вызван строковым литералом известной длины вместо одного заключенного в кавычки символа |
Expensive use of std::string with empty string literal | Использование std::string с пустой строкой литерал может быть заменен менее дорогими вызовами std::basic_string функции членства |
Inefficient string length computation | Длина строки, вычисленная при помощи длины строки, функционирует по возврату из std::basic_string::c_str() вместо того, чтобы использовать std::basic_string::length() |
std::endl may cause an unnecessary flush | std::endl используется вместо более эффективного \n |
Use of new or make_unique instead of more efficient make_shared | Используя new или make_unique инициализировать или сбросить shared_ptr результаты в дополнительном выделении памяти |
Expensive use of a standard algorithm when a more efficient method exists | Функции от algorithm библиотека неправильно используется с несоответствующими входными параметрами, приводящими к неэффективному коду |
Expensive use of container's count method | Функциональный член count() из контейнера используется для проверки, если ключ присутствует, ведя к неэффективному коду |
Inefficient use of sprintf | Функциональный sprintf копии представляют в виде строки вместо более эффективного strcpy |
Expensive dynamic cast | Дорогой dynamic_cast используется вместо более эффективного static_cast или const_cast |
Expensive logical operation | Логическая операция требует оценки обоих операндов из-за их порядка, приводящего к неэффективному коду |
Expensive post-increment operation | Объект постпостепенно увеличивается, когда предварительное постепенное увеличение быстрее |
Unnecessary Padding | Члены struct дополнены, чтобы выполнить требование выравнивания, когда реорганизация членов, чтобы выполнить это требование сохраняет память |
Средства проверки дефекта Bug Finder классифицируются в группы, такие как поток данных, параллелизм, числовой, и так далее.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.