Odpověď na názor

Odpovídáte na názor ke článku Něco o callback funkcích v C++.

  • 29. 6. 2025 15:28

    Ondřej Novák

    Tohle je ale věc překladače a optimalizace.

    Pokud překladač vidí kód destruktoru a vidí, že objekt má stav, který přeskakuje jeho skutečnou destrukci, může generovat kód tak, že vynechá destruktor úplně.

    Pořád nějak rustaři neumí oddělit jazyk jako výrazový prostředek a finální kód.

    Takže pokud někde použiju move nad std::unique_ptr, tak sic destruktor by se měl volat vždy, i když byl pointer přesunut, tak optimalizace překladače může zjistit, že destruktor se volá vždy s null pointerem a tedy destruktor v rámci optimalizace úplně vynechat (tedy nebude tam ani ten podmíněný skok). Blbý je, pokud k move došlo mimo aktuální scope, do kterého překladač nevidí.

    To všechno se může dít bez nutnosti zavádět nový jazyk.