Tady se imo rozchází terminologie.
Rust rozlišuje "Copy" (aplikovatelné pro typy u kterých se dá bezpečně udělat bitová kopie jako třeba primitivní typy) a "Clone".
Z pohledu Rustu C++ by default neprovádí Copy, ale Clone. Což je věc která se musí v Rustu dělat explicitně.
Jediná výjimka z "move everything" jsou právě proměnné implementující Copy, kde je možné poslat funkci kopii bez nějakého většího výkonnostního dopadu.
Jedna z výhod je, že Rust defaultuje k výkonnější variantě. Clone musí být explicitní a je víc vidět kde se duplikují data.
1. 11. 2023, 12:20 editováno autorem komentáře