Я все еще новичок-программист, я знаю, что преждевременная оптимизация плохая, но я также знаю, что копирование огромного материала вокруг тоже плохо.
Я прочитал о копировании elision, и это синонимы, но примеры в Википедии, например, заставляют мне показаться, что копирование может выполняться только в том случае, если возвращаемый объект возвращается, в то же время он полностью конструируется.
Как насчет объектов, таких как векторы, которые обычно имеют смысл при заполнении чем-то, когда они используются как возвращаемое значение. В конце концов, пустой вектор можно просто создать вручную.
Итак, это также работает в таком случае?
плохой стиль для краткости:
vector<foo> bar(string baz)
{
vector<foo> out;
for (each letter in baz)
out.push_back(someTable[letter]);
return out;
}
int main()
{
vector<foo> oof = bar("Hello World");
}
У меня нет реальной проблемы с использованием bar (vector и out, string text), но вышеприведенный способ будет выглядеть намного лучше, эстетически и намеренно.