Ich habe ein Objekt wie folgt und ich versuche, einen Move-Konstruktor zu implementieren, so dass Sie eine Einfügung für std::vector<Mesh>
haben können.Konstruktor verschieben, Vektor mit std :: move zwischen zwei Objekten verschieben
struct Mesh
{
std::vector<Vector3> vPoint;
bool Valid;
Mesh(Mesh&& other)
{
vPoint = std::move(other.vPoint);
Valid = std::move(other.Valid);
}
};
Ist das der richtige Weg? Und wenn ja, was ist der Wert von other.Valid nach std :: move funktioniert darauf?
Edit:
Auch wenn ich eine Instanz dieses Objekt haben muss ich std :: Umzug im folgenden Szenario benutzen?
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;
}
Warum möchten Sie '' bool' 'bewegen? – us2012
@ us2012 Ich bin nur neugierig, was passiert mit 'std :: move' oder anderen integrierten Typen. Kopiert er den Wert in 'this.Valid' und setzt' other.Valid' auf den Standardwert von bool (aka false)? –
NtscCobalt