Overview of Ada 2022
Jeff Cousins
Contents   Index   Search   Previous   Next 

7.5 Static expression functions

The aspect Static is introduced by Static expression functions (AI12-0075) (see RM 6.8). It can only be applied to an expression function, and requests that it be regarded as a static function.
When called in a context that requires a static expression, the actual parameters of the expression function need to be static. For example, if we declare:
function If_Then_Else (Flag : Boolean; X, Y : Integer) return Integer is
   (if Flag then X else Y) with Static;
and then attempt to declare:
V : Integer := 10;
X : constant := If_Then_Else (True, 37, V); -- Error.
we get an error at compile time since V is not a static expression.
Predefined shifts and rotates should be static (AI12-0385) applies this new aspect Static to the predefined shift and rotate functions of package Interfaces.

Contents   Index   Search   Previous   Next 
© 2021, 2022 Jeff Cousins