From: "Jeffrey R. Carter" <spam.jrcarter.not@spam.acm.org>
Subject: Re: using put procedure with a generic package
Date: Thu, 08 May 2008 04:09:25 GMT
Date: 2008-05-08T04:09:25+00:00 [thread overview]
Message-ID: <V1vUj.100363$TT4.42106@attbi_s22> (raw)
In-Reply-To: <151bc418-a6e4-47ef-ab7f-5b93a3cedb58@r66g2000hsg.googlegroups.com>
ophir.geffen@gmail.com wrote:
>
> * queues.ads:
> with Ada.Text_IO;
> generic
> type Item is private;
> with procedure Item_Put(The_Item : in Item);
Item_Put has exactly one parameter.
> package Int_IO is new Ada.Text_IO.Integer_IO(Integer);
> package Int_Queues is new Queues(Item => Integer, Item_Put =>
> Int_IO.Put); --- error here
>
> The package compiles on its own, but when I try to compile Test_Queues
> there is an error:
> no visible subprogram matches the specification for "Item_Put"
Ada.Text_IO.Integer_IO has the following procedures named Put:
procedure Put(File : in File_Type;
Item : in Num;
Width : in Field := Default_Width;
Base : in Number_Base := Default_Base);
procedure Put(Item : in Num;
Width : in Field := Default_Width;
Base : in Number_Base := Default_Base);
procedure Put(To : out String;
Item : in Num;
Base : in Number_Base := Default_Base);
None of these has exactly one parameter. That's why Int_IO.Put doesn't match
Item_Put.
You can call the 2nd of these with only one explicit parameter:
Int_IO.Put (Item => 7);
but it still has 3 parameters; the other 2 get the default values as the actual
parameters.
You need to create a procedure that matches Item_Put:
procedure Put (Item : in Integer) is
-- null;
begin -- Put
Int_IO.Put (Item => Item);
end Put;
and use it to instantiate your generic package.
--
Jeff Carter
"I unclog my nose towards you."
Monty Python & the Holy Grail
11
next prev parent reply other threads:[~2008-05-08 4:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-08 3:27 using put procedure with a generic package ophir.geffen
2008-05-08 4:09 ` Jeffrey R. Carter [this message]
2008-05-08 4:48 ` ophir.geffen
2008-05-08 7:24 ` Dmitry A. Kazakov
2008-05-08 15:54 ` Adam Beneschan
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox