Odpovídáte na názor ke článku Něco o callback funkcích v C++.
Move je v Rustu taky bezpečné, dělá to destructive move, tozn. původní objekt se zničí a interně je to implementované jako memcpy. Má to dost výhod, není potřeba psát kód pro move (což ušetří práci a nedá se v tom udělat chyba) a asi ani nejde vymyslet nic rychlejšího než memcpy, takže to má i vysoký výkon.
V C++ nebylo možné destructive move udělat ze dvou důvodů. První je, že C++ nemá borrow checker a tedy ani koncept objektu v moved stavu, který se už nesmí použít. Tohle by šlo simulovat něčím jako std::optional nebo nullptr, ale je těžké to nějak rozumně přidat vedle C++ copy sémantiky, aby se move jednoduše požívalo a dávalo to smysl. Druhý důvod, proč nešlo destructive move v C++ udělat, je ten, že v tomto konceptu nelze mít v objektu ukazatel/referenci na sama sebe (adresa se po move změní, dělá to memcpy) a přidání takového pravidla by zase rozbilo spoustu existujícího kódu.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 57 649×
Přečteno 27 729×
Přečteno 26 407×
Přečteno 24 371×
Přečteno 22 874×