Názor k článku Použití instrukcí SSE a AVX pro zrychlení bitových operací od linuxák - Kompatibilita s dřívějšími kódy se ztratila změnou C++...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 11. 2022 12:55

    linuxák

    Kompatibilita s dřívějšími kódy se ztratila změnou C++ standardu. Ve chvíli, kdy se do C++ standardu zavedl strict aliasing, tak se do všech dříve korektních programů, které používaly aliasing pointerů různého typu, zavedlo undefined behavior.

    Tohle se vědělo a udělalo se to záměrně, protože strict aliasing umožňuje překladači lépe optimalizovat kód a překladače to využívají, aby byl výsledný kód rychlejší.

    Takže tvůj předpoklad, že překladač musí dodržovat kompatibilitu s dřívejšími kódy, není správný. Překladač musí dodržovat kompatibilitu pouze s C++ standardem.