История изменений
Исправление rupert, (текущая версия) :
Книжка с какими-то устаревшими паттернами. Нафига делать out параметр, а потом свопить в него, когда можно просто возвратить по значению?
auto transmogrify(const std::vector<C>& in) {
std::vector tmp;
tmp.reserve(in.size());
for (const auto& x : in) {
tmp.push_back(transmogrify(x));
}
return tmp;
}
Здесь вообще даже не будет вызова move конструктора, потому что применится NRVO.
Исходная версия rupert, :
Книжка с какими-то устаревшими паттернами. Нафига делать out параметер, а потом свопить в него, когда можно просто возвратить по значению?
auto transmogrify(const std::vector<C>& in) {
std::vector tmp;
tmp.reserve(in.size());
for (const auto& x : in) {
tmp.push_back(transmogrify(x));
}
return tmp;
}
Здесь вообще даже не будет вызова move конструктора, потому что применится NRVO.