From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Quick question regarding limited type return syntax
Date: Thu, 31 Jul 2014 21:12:41 -0500
Date: 2014-07-31T21:12:41-05:00 [thread overview]
Message-ID: <lret2q$fs$1@loke.gir.dk> (raw)
In-Reply-To: bf9193d6-e1a8-4df3-8e36-b07a2b07655e@googlegroups.com
"Adam Beneschan" <adambeneschan@gmail.com> wrote in message
news:bf9193d6-e1a8-4df3-8e36-b07a2b07655e@googlegroups.com...
...
>The effect is that subcomponents of Database that have default initial
>values
>will be initialized, and subcomponents that don't have default initial
>values
>will be initialized to garbage (except where the language says otherwise).
>That's really the same as your original example was trying to do. I guess
>that explicitly putting "others => <>" in an aggregate is enough to
>convince GNAT not to think you were accidentally leaving something
>initialized to garbage.
I'd hope so: the syntax you gave says that you explicitly wanted something
initialized to garbage. :-) [OK, explicitly default-initialized, whatever
that does.] It's not a compiler's job to second-guess explicit instructions,
programmers would get really annoyed if it did (and have a hard time getting
anything done).
It's annoying that we couldn't get this "explicit default-initialization"
syntax more widely used. I prefer to ensure that everything is properly
initialized, but sometimes the default value is good enough. It would be
nice to be able to specify that:
Obj : My_Type := <>;
or maybe
Obj : My_Type := (<>);
so that I could verify that every object is either initialized or explicitly
left default initialized. Right now, I use a comment:
Obj : My_Type; -- Default initialize is OK here, because ...
but it's hard for a tool to tell that everything is as it should be.
(We tried to allow "(<>)" for private types for Ada 2005, but ran into a
number of problems that eventually led us to give up. Too bad, I don't think
they were insurmountable, but we were running short on time.)
Randy.
next prev parent reply other threads:[~2014-08-01 2:12 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-30 23:51 Quick question regarding limited type return syntax NiGHTS
2014-07-31 0:02 ` Adam Beneschan
2014-07-31 0:56 ` NiGHTS
2014-07-31 0:48 ` Shark8
2014-07-31 1:00 ` NiGHTS
2014-07-31 1:29 ` Adam Beneschan
2014-07-31 1:38 ` NiGHTS
2014-07-31 4:01 ` Shark8
2014-08-01 2:12 ` Randy Brukardt [this message]
2014-08-01 3:40 ` Shark8
2014-08-01 7:57 ` J-P. Rosen
2014-08-01 19:23 ` Randy Brukardt
2014-08-01 19:37 ` J-P. Rosen
2014-08-01 20:53 ` Shark8
2014-08-02 7:11 ` Niklas Holsti
2014-08-02 7:34 ` Dmitry A. Kazakov
2014-08-02 13:20 ` Robert A Duff
2014-08-02 13:44 ` Dmitry A. Kazakov
2014-08-02 14:34 ` Robert A Duff
2014-08-02 16:56 ` Dmitry A. Kazakov
2014-08-02 20:35 ` Niklas Holsti
2014-08-03 7:30 ` Dmitry A. Kazakov
2014-08-04 9:24 ` Niklas Holsti
2014-08-04 10:42 ` G.B.
2014-08-04 11:39 ` Peter Chapin
2014-08-04 17:49 ` Niklas Holsti
2014-08-04 11:36 ` Peter Chapin
2014-08-04 12:43 ` Dmitry A. Kazakov
2014-08-04 16:19 ` G.B.
2014-08-04 16:38 ` Dmitry A. Kazakov
2014-08-04 16:51 ` G.B.
2014-08-04 17:23 ` Dmitry A. Kazakov
2014-08-04 19:37 ` Niklas Holsti
2014-08-05 8:30 ` Dmitry A. Kazakov
2014-08-05 19:24 ` Randy Brukardt
2014-08-03 16:35 ` Robert A Duff
2014-08-02 8:02 ` Jacob Sparre Andersen
2014-08-02 19:20 ` Shark8
2014-08-03 16:07 ` Default values (Was: Quick question regarding limited type return syntax) Jacob Sparre Andersen
2014-08-04 21:29 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox