C++ constexpr funkcia (prípadne metóda) vs inline funkcia

Je nejaký rozdiel medzi constexpr funkciou a inline funkciou? Alebo je to to isté? A ak je tak aký?


anonacct

Re:C++ constexpr funkcia (prípadne metóda) vs inline funkcia
« Odpověď #1 kdy: 10. 08. 2021, 20:12:01 »
Je toto fakt otázka, na kterou nedokážeš najít odpověď na internetu?

Nechci se navážet, ale toto je fakt trochu triviální otázka.

Kit

  • *****
  • 1 140
Re:C++ constexpr funkcia (prípadne metóda) vs inline funkcia
« Odpověď #2 kdy: 10. 08. 2021, 22:07:36 »
Citace od: anonacct kdy 10. 08. 2021, 20:12:01
Je toto fakt otázka, na kterou nedokážeš najít odpověď na internetu?

Nechci se navážet, ale toto je fakt trochu triviální otázka.

To je tak těžké odpovědět na takovou triviální otázku?


Re:C++ constexpr funkcia (prípadne metóda) vs inline funkcia
« Odpověď #4 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


Re:C++ constexpr funkcia (prípadne metóda) vs inline funkcia
« Odpověď #5 kdy: 13. 08. 2021, 10:15:56 »
Citace od: alex6bbc kdy 11. 08. 2021, 07:11:37
...

Citace od: stribro kdy 12. 08. 2021, 11:21:12
...

Ďakujem Vám za odpovede.

Citace od: anonacct kdy 10. 08. 2021, 20:12:01
Nechci se navážet, ale toto je fakt trochu triviální otázka.

Ešte predtým som si o tom niečo hľadal. Akurát internet je plný poloprávd a nepresností. Diskusia je lepšia, tu keď niekto dá nepresné, alebo nesprávne vysvetlenie, tak ho ostatní opravia. A navyše, občas sa tu dozviem, aj ďalšie užitočné informácie, na ktoré ma ani nenapadlo sa pýtať.

Re:C++ constexpr funkcia (prípadne metóda) vs inline funkcia
« Odpověď #6 kdy: 13. 08. 2021, 16:54:53 »
Od toho jsou diskuzní fóra. Tady musím podpořit Kita. Co jednomu přijde jasné, u někoho vyvolává otázky. Žádný dotaz není hloupý. Divil byste se, kolik otázek, které třeba vyučující považoval za triviální, ho přivedlo do úzkých, když to měl někomu vysvětlit. Jen taková poznámka.