Лучший способ написать конструктор класса, который содержит контейнер STL в C ++ 11

class Foo {
  std::vector<SomeType> data_;
};

СказатьFoo может быть создан только путем создания копии (технически я имею в виду копию или перемещение)std::vector<SomeType> объект. Какой лучший способ написать конструктор (ы) дляFoo?

Мое первое чувство

Foo(std::vector<SomeType> data) noexcept : data_(std::move(data)) {};

Используя его, создание экземпляра занимает 0 или 1 раз векторного копирования, в зависимости от того, является ли аргумент для {data} подвижным или нет.

Ответы на вопрос(3)

Ваш ответ на вопрос