Odpověď na názor

Odpovídáte na názor ke článku Destructive Move v C++?.

  • 6. 7. 2025 17:51

    linuxák

    cdecl jako takové řeší jen vyčištění zásobníku, nic neříká o volání destructorů. C++ se rozhodlo, že bude volat destructory těsně před vyčištěním zásobníku v caller contextu, ale nic nebrání tomu volat destructory v callee kontextu, jako to dělá Rust, a pořád to bude cdecl. Nicméně to je slovíčkaření.

    C++ už v historii ABI breaky mělo, např. std::string kvůli zrušení copy-on-write a std::list kvůli size() v C++11. Vážně se o možnosti větších ABI breaků uvažovalo na konferenci v Praze a hlasovalo se o tom, ale ABI break boužel neprošel. Podle mého názoru se tím C++ odsoudilo k tomu, že bude v dlouhodobém měřítku stále méně relevantní (Google se už od C++ dost odklání). Zajímavé povídání je tom zde: The Day The Standard Library Died

    Co tím chci říct, i C++ je schopné ABI break potenciálně udělat (třeba na druhý pokus...).