1
Vývoj / Re:C++ constexpr funkcia (prípadne metóda) vs inline funkcia
« kdy: 12. 08. 2021, 11:21:12 »
Constexpr označuje funkce, které lze spustit už při kompilaci a do binárky zapsat jenom jejich výsledek.
Standard c++ říká "it is possible to evaluate the value of the function or variable at compile time", takže jako obvykle záleži na implementaci kompilátoru, jestli constexpr spustí nebo ne.
Inline je hint pro kompilátor, aby volání funkce nahradil přímo její implementací, což je optimalizace, kterou ale moderní kompilátory umí dělat samy a "inline" k tomu nepotřebují.
Důležitější vlastnosti inline se týkají kompilace a linkování, a zde tě spís odkážu na Stack Overflow:
https://stackoverflow.com/questions/1759300/when-should-i-write-the-keyword-inline-for-a-function-method
Standard c++ říká "it is possible to evaluate the value of the function or variable at compile time", takže jako obvykle záleži na implementaci kompilátoru, jestli constexpr spustí nebo ne.
Inline je hint pro kompilátor, aby volání funkce nahradil přímo její implementací, což je optimalizace, kterou ale moderní kompilátory umí dělat samy a "inline" k tomu nepotřebují.
Důležitější vlastnosti inline se týkají kompilace a linkování, a zde tě spís odkážu na Stack Overflow:
https://stackoverflow.com/questions/1759300/when-should-i-write-the-keyword-inline-for-a-function-method