comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Discriminants of tagged types
Date: Wed, 27 Oct 2010 05:34:26 -0700 (PDT)
Date: 2010-10-27T05:34:26-07:00	[thread overview]
Message-ID: <afb51016-07d0-4af5-bc33-bf122f7c3f8f@30g2000yqm.googlegroups.com> (raw)
In-Reply-To: 14314714-e92c-4036-9cbb-da8e72489261@h7g2000yqn.googlegroups.com

Maciej Sobczak wrote on comp.lang.ada:
> I'm not sure if I have already complatined about it, but as I have hit
> that problem again, here it goes:
>
> GNAT says that discriminants of tagged types cannot have default
> values.
> So this is OK:
>
>    type T (A : Integer := 0) is null record;
>
> but this is an error:
>
>    type T (A : Integer := 0) is tagged null record;
>
> I find it disturbing and artificial, but perhaps I don't see the big
> picture. What is the rationale for this limitation?

If one discriminant has a default value, then all discriminants must
have default values (ARM 3.7(9.1/2)).  The reason is explained in the
Annotated Ada Reference Manual[1].

http://www.adaic.com/standards/05aarm/html/AA-3-7.html

Tagged types have, by definition, a hidden discriminant which is the
tag.  The tag has no default value and cannot have one, for that would
allow changing the type of an object at run time (through assignment
of an aggregate).  Therefore, *additional* discriminants cannot have
default values either.

--
Ludovic Brenta.



  reply	other threads:[~2010-10-27 12:34 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-27 12:16 Discriminants of tagged types Maciej Sobczak
2010-10-27 12:34 ` Ludovic Brenta [this message]
2010-10-27 13:19   ` Dmitry A. Kazakov
2010-10-27 13:52     ` Robert A Duff
2010-10-27 14:12       ` Dmitry A. Kazakov
2010-10-27 13:44 ` Robert A Duff
2010-10-27 15:06   ` Adam Beneschan
2010-10-27 15:58     ` Yannick Duchêne (Hibou57)
2010-10-27 16:35       ` Vinzent Hoefler
2010-10-27 17:58       ` J-P. Rosen
2010-10-27 20:18         ` Yannick Duchêne (Hibou57)
2010-10-27 20:26       ` Adam Beneschan
2010-10-27 22:07         ` Yannick Duchêne (Hibou57)
2010-10-27 22:42           ` Adam Beneschan
2010-10-27 15:13   ` Maciej Sobczak
2010-10-27 16:02     ` Yannick Duchêne (Hibou57)
2010-10-27 21:13       ` Maciej Sobczak
2010-10-27 21:23         ` Ludovic Brenta
2010-10-28  8:38           ` Maciej Sobczak
2010-10-27 21:25         ` Vinzent Hoefler
2010-10-28  7:53         ` Dmitry A. Kazakov
2010-10-28  8:50           ` Maciej Sobczak
2010-10-28 10:28             ` Dmitry A. Kazakov
2010-10-28 17:48             ` Yannick Duchêne (Hibou57)
2010-10-29 18:59             ` Vinzent Hoefler
2010-10-30 21:05               ` Maciej Sobczak
2010-10-30 21:21                 ` Vinzent Hoefler
2010-10-30 22:01                   ` Yannick Duchêne (Hibou57)
2010-10-31 16:20                   ` Maciej Sobczak
2010-10-31 17:04                     ` Yannick Duchêne (Hibou57)
2010-10-31 18:36                     ` Shark8
2010-10-31 21:06                       ` Maciej Sobczak
2010-11-01  0:44                         ` Shark8
2010-11-01  9:41                           ` Maciej Sobczak
2010-10-27 16:06     ` Robert A Duff
2010-10-27 16:34       ` Yannick Duchêne (Hibou57)
2010-10-27 21:05       ` Maciej Sobczak
2010-10-28  0:35         ` Robert A Duff
2010-10-28  8:55           ` Maciej Sobczak
2010-10-27 21:28       ` Simon Wright
2010-10-27 13:54 ` J-P. Rosen
replies disabled

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