From: Thomas Maier-Komor <maierkom@rcs.ei.tum.de>
Subject: class wide object in generic package
Date: Mon, 10 Jun 2002 09:38:15 +0200
Date: 2002-06-10T07:38:15+00:00 [thread overview]
Message-ID: <3D045767.8020102@rcs.ei.tum.de> (raw)
Hi everybody,
I am getting this error message when compiling the
code at the end of the message:
generic_pac.adb:7:26: class-wide argument not allowed here
generic_pac.adb:7:26: "eval" is not a primitive operation of "Object"
my question is:
first: is it possible to declare a procedure in the
generic part so that it will be a primitive operation of
Object?
second: why isn't a class-wide argument not allowed
in this place?
Thanks,
Tom
generic_pac.ads:
generic
type Object is abstract tagged private;
type Pointer is access all Object'class;
with procedure eval(o : in out Object);
package generic_pac is
type gen is record
p : Pointer;
end record;
procedure use_it(g : in out gen);
end generic_pac;
===========================================
generic_pac.adb:
with Ada.Text_IO; use Ada.Text_IO;
package body generic_pac is
procedure use_it(g : in out gen) is
begin
Put_Line("generic_pac.use_it");
eval(g.p.all);
end use_it;
end generic_pac;
--
________________________________________________________________________
Dipl.-Ing. Thomas Maier-Komor http://www.rcs.ei.tum.de
Institute for Real-Time Computer Systems (RCS) fon +49-89-289-23578
Technische Universitaet Muenchen, D-80290 Muenchen fax +49-89-289-23555
next reply other threads:[~2002-06-10 7:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-06-10 7:38 Thomas Maier-Komor [this message]
2002-06-10 12:28 ` class wide object in generic package Craig Carey
2002-06-10 13:14 ` Thomas Maier-Komor
2002-06-10 13:00 ` Stephen Leake
2002-06-10 13:25 ` Thomas Maier-Komor
2002-06-11 20:57 ` Ehud Lamm
2002-06-12 17:33 ` Stephen Leake
2002-06-13 1:58 ` Robert A Duff
2002-06-13 14:07 ` Stephen Leake
-- strict thread matches above, loose matches on Subject: below --
2002-06-10 11:07 Grein, Christoph
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox