Stałowyrażeniowa funkcja lub konstruktor, mogą być wywołane z niestałowyrażeniowymi argumentami. Jeśli stałowyrażeniowy literał całkowity może być przypisany do niestałowyrażeniowej zmiennej, to stałowyrażeniowa funkcja może być także wywołana z niestałowyrażeniowymi parametrami, a wynik jest przechowywany w zmiennej niestałowyrażeniowej. Słowo kluczowe constexpr tylko umożliwia stałość podczas kompilacji tylko wtedy, gdy wszystkie składowe wyrażenia są typu constexpr.
W standardzie C++20 do języka wprowadzono nowe słowo kluczowe – consteval. Funkcja oznaczona jako consteval, nazywana funkcją natychmiastową, zachowuje się tak samo jak funkcja constexpr, jednak może być wywoływana jedynie z argumentami constexpr. Wartość zwracana przez funkcję natychmiastową musi być zawsze znana podczas kompilacji.
Modyfikacja definicji tradycyjnych struktur danych (TSD) W starszym C++, struktura musi spełniać kilka wymagań, by stać się tradycyjną strukturą danych (TSD) (ang. Plain Old Data, POD). Jest kilka powodów, by chcieć, aby większa liczba typów danych spełniała te wymagania. Typy spełniające te wymagania pozwalają implementacjom na takie ułożenie składowych obiektów, które byłyby kompatybilne z C.