Beetje Coderen

Les 24

Move-semantiek

Rvalue-references, de move-constructor, std::move en het vermijden van onnodige kopieën.

⏱ 55 minuten leestijd + oefenen

🎯 Na deze les kun je

  • het verschil tussen een lvalue en een rvalue uitleggen
  • een move-constructor en move-toekenning schrijven
  • std::move correct gebruiken en de toestand van een verplaatst object beschrijven
  • situaties herkennen waarin de compiler zelf kopieën vermijdt

Een std::vector met een miljoen elementen teruggeven uit een functie: wordt die dan gekopieerd? In oud C++ soms wel. Sinds C++11 kan een object zijn inhoud verplaatsen (move): de nieuwe eigenaar neemt de interne pointer over, en het oude object blijft leeg achter. Geen kopie van een miljoen elementen, maar het overzetten van een paar pointers.

Je hebt std::move al gezien bij unique_ptr (les 19). Nu kijk je hoe het werkt, en schrijf je het voor een eigen resourceklasse (les 18).

🔒 Deze les zit in het betaalde deel van de cursus

De eerste 5 lessen zijn gratis; de rest van de cursus, de live labs en het certificaat koop je eenmalig (€ 29,00). Geen abonnement. Online afrekenen komt binnenkort beschikbaar.

Wil je een seintje als het zover is?