std::string operator+() instead of
a simple appendНе являющиеся членами std::string operator+() функция вызывается при добавлении (или +=) метод был бы более эффективным
Этот дефект возникает, когда вы добавляете к строке с помощью функции, не являющейся членом std::string operator+(), для образца:
std::string s1; s1 = s1 + "Other";
Операция:
s1 = s1 + "Other";
std::string operator+() для конкатенации строки с правой стороны задания. Функция возвращает временную строку, которая затем назначается s1.Прямой вызов функции представителя operator+=() избегает создания этой временной строки и является более эффективным.
Чтобы добавить к строке, используйте функцию представителя operator+=(), для образца:
std::string s1; s1 += "Other";
append, для образца:std::string s1;
s1.append("Other");Эффективность улучшения могут варьироваться в зависимости от используемого компилятора, реализации библиотеки и окружения.
| Группа: Эффективность |
| Язык: C++ |
| По умолчанию: Off |
Синтаксис командной строки
: EXPENSIVE_STD_STRING_APPEND |
| Влияние: Низкое |