Les 24
Move-semantiek
Rvalue-references, de move-constructor, std::move en het vermijden van onnodige kopieën.
🎯 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?