Aşağıdaki gibi bir nesneyim var ve ben std::vector<Mesh>
için bir ek olabilir, böylece bir hareket yapıcı uygulamak için çalışıyorum.Oluşturucu Taşıyın, std :: move kullanarak vektörü iki nesne arasında taşıyın.
struct Mesh
{
std::vector<Vector3> vPoint;
bool Valid;
Mesh(Mesh&& other)
{
vPoint = std::move(other.vPoint);
Valid = std::move(other.Valid);
}
};
Bu doğru yol mu? Ve eğer öyleyse eğer std :: move üzerinde diğer .Valid değeri nedir?
Düzenleme: Ayrıca
ben bu nesnenin bir örneğini varsa aşağıdaki senaryoda std :: hareket kullanmak gerekir?
std::vector<Mesh> DoSomething()
{
Mesh mesh; //Imagine vPoint is filled here to
std::vector<Mesh> meshes;
meshes.push_back(std::move(mesh)); // Here is my question, std::move? or just pass mesh here?
return meshes;
}
Neden bir "bool" taşıyalım? – us2012
@ us2012 Sadece std :: move 'veya diğer tümleşik türlerle ne olduğunu merak ediyorum. Değer 'this.Valid' değerine kopyalanır ve sonra 'other.Valid 'varsayılan bool değerine ayarlanır (aka false)? –
NtscCobalt