Ada Programming/Attributes/'Enum Val
This language feature has been introduced in Ada 2022.
Description
editReturn the enumeration literal represented by a given number.
For every enumeration subtype S
, S'Enum_Val
denotes a function with the following spec:
function S'Enum_Val (Arg : <Universal_Integer>) return S'Base;
The function returns the enumeration value whose representation matches the argument, or raises Constraint_Error if no enumeration literal of the type has the matching value. This will be equal to the value of the Val
attribute in the absence of an enumeration representation clause. This is a static attribute (i.e., the result is static if the argument is static).
Example
edittype
Enum_Typeis
(Enum1, Enum2, Enum3);
pragma
Assert (Enum_Type'Enum_Val(0) = Enum1); -- OK
See also
editWikibook
editAda Reference Manual
edit- 13.4: Enumeration Representation Clauses [Annotated]
- Annex K: Language-Defined Attributes [Annotated]
Ada 2022 Overview
editExternal links
editGNAT Reference Manual > Implementation Defined Attributes > Enum_Val