diff options
Diffstat (limited to 'gcc/ada/a-cohase.ads')
-rw-r--r-- | gcc/ada/a-cohase.ads | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/ada/a-cohase.ads b/gcc/ada/a-cohase.ads index 0bb370b..96944cd 100644 --- a/gcc/ada/a-cohase.ads +++ b/gcc/ada/a-cohase.ads @@ -34,6 +34,7 @@ private with Ada.Containers.Hash_Tables; private with Ada.Streams; private with Ada.Finalization; +with Ada.Iterator_Interfaces; generic type Element_Type is private; @@ -49,7 +50,11 @@ package Ada.Containers.Hashed_Sets is pragma Preelaborate; pragma Remote_Types; - type Set is tagged private; + type Set is tagged private + with + Default_Iterator => Iterate, + Iterator_Element => Element_Type; + pragma Preelaborable_Initialization (Set); type Cursor is private; @@ -63,6 +68,12 @@ package Ada.Containers.Hashed_Sets is -- Cursor objects declared without an initialization expression are -- initialized to the value No_Element. + function Has_Element (Position : Cursor) return Boolean; + -- Equivalent to Position /= No_Element + + package Set_Iterator_Interfaces is new + Ada.Iterator_Interfaces (Cursor, Has_Element); + function "=" (Left, Right : Set) return Boolean; -- For each element in Left, set equality attempts to find the equal -- element in Right; if a search fails, then set equality immediately @@ -303,9 +314,6 @@ package Ada.Containers.Hashed_Sets is function Contains (Container : Set; Item : Element_Type) return Boolean; -- Equivalent to Find (Container, Item) /= No_Element - function Has_Element (Position : Cursor) return Boolean; - -- Equivalent to Position /= No_Element - function Equivalent_Elements (Left, Right : Cursor) return Boolean; -- Returns the result of calling Equivalent_Elements with the elements of -- the nodes designated by cursors Left and Right. @@ -327,6 +335,9 @@ package Ada.Containers.Hashed_Sets is Process : not null access procedure (Position : Cursor)); -- Calls Process for each node in the set + function Iterate + (Container : Set) return Set_Iterator_Interfaces.Forward_Iterator'Class; + generic type Key_Type (<>) is private; |