Lubię uschematyzowaną wiedzę i brakuje mi tego z constexpr
. Jak byście określili zasady kiedy powinno używać się tego słowa kluczowego?
W tej chwili rozumiem to tak, proszę o skorygowanie.
Constexpr
mówi kompilatorowi, że funkcja może zostać wykonana w czasie kompilacji, ale nie musi. Z tego wynika, że słowo kluczowe constexpr
powinno być używane zawsze kiedy ma to jakikolwiek sens.
Preinkrementacja(++i) "wyłącza" wykonanie w czasie kompilacji. (?)
Druga opcja jest lepsza bo pomijamy mnożenie w czasie działania programu.
const int a = 5 * 3;
constexpr int b = 5 * 3;
Nie ma różnicy między tymi liniami i oba sposoby są dobre na definiowanie magic numbers
.
const int a = 5;
constexpr int b = 5;