Jde o výpočty během překladu. Třeba pro nahrazení šablonového metaprogramování něčím, co se dá i číst.

Constexpr proměnné překladač inicializuje během překladu. Je jisté, že se nic nebude počítat za běhu.
- U constexpr globálních proměnných nehrozí problémy s pořadím inicializace. Všechno bude připravené v .data sekci.
- constexpr proměnné se dají použít pro velikosti polí, nebo třeba pro immediate parametry sse intrinsik.
Constexpr funkce _se dají_ vyhodnotit během překladu. Jestli se tak stane je na libovůli překladače. V tom jsou trochu slabší než constexpr proměnné. Takže c++20 zavedlo consteval funkce, které jsou tutově vyhodnocené během překladu.
- do constexpr proměnných se celkem logicky dají nacpat jen výsledky constexpr funkcí.
Třetí použití je "if constexpr (...)", které se taky vyhodnotí během překladu. Hodí se tam, kde by se obyčejný if vůbec nepřeložil. U obyčejného ifu musí jít obě větve přeložit i když je při překladu jasné, že se jedna nikdy neprovede.