comp.lang.ada
 help / color / mirror / Atom feed
* tagged type as generic parameter
@ 2008-01-03 15:20 Philippe Tarroux
  2008-01-03 15:51 ` Dmitry A. Kazakov
  0 siblings, 1 reply; 14+ messages in thread
From: Philippe Tarroux @ 2008-01-03 15:20 UTC (permalink / raw)


Hi everybody,

I wrote the following packages:


generic
   type Data is tagged private;  -- In order to be able to build lists 
of items of this type
package List is

   type List (<>) is private;

private
   type Item;
   type Item_Ptr is access Item;
   type Item is new Data with record      -- Line 22
      Next : Item_Ptr;
   end record;
  
   type List_Head is tagged record
      Head : Item_Ptr := null;
   end record;

   type List is access List_Head;
end List;

-----------------------------------
package data_handler is

   type Data is tagged private;
  
   function A_Data(V : Integer) return Data;
   procedure Print (D : Data);
  
private
  
   type Data is tagged record
      Value : Integer;
   end record;

end data_handler;

-------------------------------------------

with List;
with Data_Handler;
use Data_Handler;

package data_list is

   package My_List is new List (Data_Handler.Donn�es); 

end data_list;

When i try to instantiate the last package (data_list) i get the 
following error:

data_list.ads:7:04: instantiation error at list.ads:22
data_list.ads:7:04: type must be declared abstract or "a_data" overridden
data_list.ads:7:04: "a_data" has been inherited at list.ads:22, instance 
at line 7
data_list.ads:7:04: "a_data" has been inherited from subprogram at 
data_handler.ads:5

I suspect the problem is due to the derivation of Item from Data at line 
22 of list.ads during the instantiation of the generic but I don't 
really understand why and i don't understand why the problem arises with 
the function A_Data and not with the procedure Print.

OS : W2K
GCC version 4.1.3 20070403 for GNAT GPL 2007

Thank and best regards

Philippe Tarroux






^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-01-04 15:38 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-03 15:20 tagged type as generic parameter Philippe Tarroux
2008-01-03 15:51 ` Dmitry A. Kazakov
2008-01-03 16:22   ` Adam Beneschan
2008-01-03 16:58     ` Dmitry A. Kazakov
2008-01-03 17:47       ` Jean-Pierre Rosen
2008-01-03 18:13         ` Pascal Obry
2008-01-03 19:20         ` Dmitry A. Kazakov
2008-01-03 21:37         ` Jeffrey R. Carter
2008-01-04 13:08           ` Philippe Tarroux
2008-01-04 15:03             ` Jean-Pierre Rosen
2008-01-04 13:08   ` Philippe Tarroux
2008-01-04 13:22     ` Georg Bauhaus
2008-01-04 15:38       ` Philippe Tarroux
2008-01-04 14:17     ` Dmitry A. Kazakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox