comp.lang.ada
 help / color / mirror / Atom feed
From: mgk25@cl.cam.ac.uk (Markus Kuhn)
Subject: Re: Problem with instantiating generic procedure
Date: 1999/07/18
Date: 1999-07-18T00:00:00+00:00	[thread overview]
Message-ID: <7ms4en$kl8$1@pegasus.csx.cam.ac.uk> (raw)
In-Reply-To: m3u2r3p01l.fsf@deneb.cygnus.stuttgart.netsurf.de

Florian Weimer <fw@s.netic.de>:
|> ARM 6.1(20):
|> 
|> | A subprogram_declaration or a generic_subprogram_declaration requires
|> | a completion: a body, a renaming_declaration (see 8.5), or a pragma
|> | Import (see B.1). A completion is not allowed for an
|> | abstract_subprogram_declaration.

Thanks! But the RM also says in section 12.3:

  A generic_instantiation declares an instance; it is equivalent to the
  instance declaration (a package_declaration or subprogram_declaration)
  immediately followed by the instance body, both at the place of the
  instantiation. 

So if 6.1 says that a subprogram_declaration requires a body and 12.3 says that
a generic instantiation does provide the equivalent of a body, then I still
do not understand where the RM says that my program is illegal. In addition,
I see absolutely no good reason, why the language should forbid this. It just
requires an ugly workaround via renaming, which forces me to pollute the object
namespace and makes the code less readable by introducing yet another temporary
name for something. In my case, I make over 30 instantiations (I am writing a type-safe
binding for the linux ioctl() system calls), so I also have to add now over 30
renames, which looks really ugly.

I guess I'll submit it as a bug report to ACT and let them decide whether it is
just an unclear error message or a non-conformity to the RM. In any case, if someone
keeps an Ada 0X wish list, please put adding generic instantiations to 6.1(20) onto
it.

|> I guess this means that an instance of a generic subprogram isn't allowed
|> as a completion for a subprogram declaration.  The obvious workaround
|> is using a renaming declaration.  Of course, the GNAT error message
|> could be a bit more helpful.

Markus

-- 
Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK
Email: mkuhn at acm.org,  WWW: <http://www.cl.cam.ac.uk/~mgk25/>




  reply	other threads:[~1999-07-18  0:00 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-07-17  0:00 Problem with instantiating generic procedure Markus Kuhn
1999-07-17  0:00 ` Vladimir Olensky
1999-07-17  0:00 ` Florian Weimer
1999-07-18  0:00   ` Markus Kuhn [this message]
1999-07-18  0:00     ` Florian Weimer
1999-07-19  0:00       ` Robert Dewar
1999-07-19  0:00         ` Florian Weimer
1999-07-18  0:00     ` Chad R. Meiners
1999-07-18  0:00 ` David C. Hoos, Sr.
1999-07-19  0:00 ` Tucker Taft
1999-07-19  0:00   ` Markus Kuhn
1999-07-23  0:00     ` Tucker Taft
1999-07-19  0:00 ` Robert A Duff
replies disabled

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