Ada Programming/Attributes/'Tag

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Ada. Time-tested, safe and secure.
Ada. Time-tested, safe and secure.

Description[edit | edit source]

X'Tag is an Ada attribute where X is any tagged type. This attribute returns a value of the private type Ada.Tags.Tag which identifies the tagged type.

This attribute is useful to check for membership of a type in a class hierarchy. It can also be used if it is known the type is in a class hierarchy and type-specific processing must take place.

Example[edit | edit source]

Ref : My_Tagged_Type_Reference;
...
if Ref.all in My_Tagged_Type'Class then
  -- The object pointed at by Ref is in class hierarchy that is rooted at My_Tagged_Type.
  if Ref.all'Tag = My_Tagged_Type'Tag then
    -- Object is of type My_Tagged_Type.
  else  
    -- Object is of some other type in the hierarchy.
  end if;
else
  -- Object is not in the class hierarchy rooted at My_Tagged_Type (it might be of a progenitor type though).
end if;

See also[edit | edit source]

Wikibook[edit | edit source]

Ada Reference Manual[edit | edit source]