La mejor manera de escribir el constructor de una clase que tiene un contenedor STL en C ++ 11

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

DecirFoo solo se puede construir haciendo una copia (técnicamente me refiero a una copia o movimiento) de unstd::vector<SomeType> objeto. ¿Cuál es la mejor manera de escribir constructores paraFoo?

Mi primer sentimiento, g es

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

Al usarlo, la construcción de una instancia requiere 0 o 1 veces de copia vectorial, dependiendo de si el argumento para {datos} es movible o no.

Respuestas a la pregunta(3)

Su respuesta a la pregunta