Re: generic unit : compilation error ! please help me
- From: "Dmitry A. Kazakov" <mailbox@xxxxxxxxxxxxxxxxx>
- Date: Fri, 24 Feb 2006 11:51:21 +0100
On 24 Feb 2006 01:19:47 -0800, nblanpain@xxxxxxxxxxx wrote:
## parent.ads ## :
generic
type T_Real is digits <>;
package Parent is
type T_Parent is tagged private;
type T_Parent_Access is access all T_Parent;
private
type T_Parent is tagged record
Real : T_Real;
end record;
end Parent;
## child.ads ##
with Parent;
generic
type T_Real is digits <>;
with package Par is new Parent (T_Real);
package Child is
type T_Child is new Par.T_Parent with private;
type T_Child_Access is access all T_Child;
private
type T_Child is new Par.T_Parent with record
Real2 : T_Real;
end record;
end Child;
## parent-test_unit.ads ##
generic
package Parent.Test_Unit is
subtype T_Unit_To_Test is Parent.T_Parent;
subtype T_Unit_To_Test_Access is Parent.T_Parent_Access;
type T_Unit_To_Test_Class_Access is access all T_Unit_To_Test'Class;
type T_Test_Unit is tagged private;
type T_Test_Unit_Access is access all T_Test_Unit;
procedure Set_Unit_To_Test
(This : in out T_Test_Unit;
Utt : in T_Unit_To_Test_Class_Access);
private
type T_Test_Unit is tagged record
Unit_To_Test : T_Unit_To_Test_Class_Access;
end record;
end Parent.Test_Unit;
## parent-test_unit.adb ##
package body Parent.Test_Unit is
procedure Set_Unit_To_Test
(This : in out T_Test_Unit;
Utt : in T_Unit_To_Test_Class_Access) is
begin
This.Unit_To_Test := Utt;
end Set_Unit_To_Test;
end Parent.Test_Unit;
## child-test_unit.ads ##
with Parent.Test_Unit;
generic
with package Parent_Test_Unit is new Parent.Test_Unit;
with package Parent_Test_Unit is new Par.Test_Unit;
Parent of Child and Parent of Parent.Test_Unit should be the same beast.
package Child.Test_Unit is
subtype T_Unit_To_Test is Child.T_Child;
subtype T_Unit_To_Test_Access is Child.T_Child_Access;
type T_Unit_To_Test_Class_Access is access all T_Unit_To_Test'Class;
type T_Test_Unit is new Parent_Test_Unit.T_Test_Unit with private;
type T_Test_Unit_Access is access all T_Test_Unit;
procedure Set_Unit_To_Test
(This : in out T_Test_Unit;
Utt : in T_Unit_To_Test_Class_Access);
private
type T_Test_Unit is new Parent_Test_Unit.T_Test_Unit with record
Unit_To_Test2 : T_Unit_To_Test_Class_Access;
end record;
end Child.Test_Unit;
## child-test_unit.adb ##
package body Child.Test_Unit is
procedure Set_Unit_To_Test
(This : in out T_Test_Unit;
Utt : in T_Unit_To_Test_Class_Access) is
begin
Parent_Test_Unit.Set_Unit_To_Test
(Parent_Test_Unit.T_Test_Unit (This),
Parent_Test_Unit.T_Unit_To_Test_Class_Access (Utt)); --
error !!!!!!!
This.Unit_To_Test2 := Utt;
end Set_Unit_To_Test;
end Child.Test_Unit;
P.S. Don't use pointers, generics and Hungarian notation.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
.
- References:
- generic unit : compilation error ! please help me
- From: nblanpain
- generic unit : compilation error ! please help me
- Prev by Date: Re: generic unit : compilation error ! please help me
- Next by Date: Re: GNAT GPL compile problems
- Previous by thread: Re: generic unit : compilation error ! please help me
- Index(es):
Relevant Pages
|
|