Лучший способ написать конструктор класса, который содержит контейнер 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} подвижным или нет.