Здравствуйте, Dair, Вы писали:
V>>не будет ли какого нибудь лишнего копирования или чего доброго не прибьет ли выход из функции create созданную на стеке временную переменную v?
D>Лишнего не будет, но копирование один раз будет вызвано в месте где points = v;
D>поэтому я бы так не делал, а делал бы сразу
D>D>void create(vector<Point>& points) {
D> points.push_back(Point(1,2));
D> ...
D>}
D>
Мы не знаем, как формируется внутренний массив и какие требования к целостности данных.
Если таки необходимо строить данные в локальном массиве, то я бы сделал вместо
points = v;
по старинке
points.swap(v);
// или по-современному
points = std::move(v);