From: "Alexander E. Kopilovich" <aek@VB1162.spb.edu>
To: comp.lang.ada@ada-france.org
Subject: Re: Reprise: 'in out' parameters for functions
Date: Thu, 8 Apr 2004 21:19:36 +0400 (MSD)
Date: 2004-04-08T21:19:36+04:00 [thread overview]
Message-ID: <mailman.222.1081445466.327.comp.lang.ada@ada-france.org> (raw)
In-Reply-To: <u4qrv5hwr.fsf@acm.org>; from Stephen Leake at 07 Apr 2004 22:21:08 -0400
Stephen Leake wrote:
> > > This is what I wanted to declare:
> > >
> > > function Parse
> > > (Error_Label : in String;
> > > Token : in out Token_List.List_Iterator)
> > > return String;
> > > -- Process Token, which should contain '([Config_File =>] <string>)'.
> > > -- Return the string.
> > > -- Delete parsed tokens from Token.
> > >
> > One thing is missing in this your explanation: why exactly you don't want to
> > make that List_Iterator global (instead of passing it as IN OUT argument) ?
> My answer is "I never make anything global unless it has to be,
> because that usually leads to trouble".
Yes, but this is general attitude, and it says nothing definite about
particular case - it can be that detailed analysis of this particular case
will show reasons to make it global.
> In this case, Token is actually the contents of an aggregate, part of
> a larger statement that is dynamically allocated. It must be modified
> in place; copying it to a global to pass it to this routine would be a
> maintenance nightmare.
I did not think about copying. I think that real question may be whether
Parse conceptually deals with Token_List.List_Iterator or with the whole
List_Iterator. In the latter case a global is generally possible without any
copying.
> And no, I don't consider "Ada doesn't allow 'in out' in functions" a
> good reason to make something global; I'll change it to a procedure
> first.
Certainly. But there may be other reasons (originated from detailed design).
Alexander Kopilovich aek@vib.usr.pu.ru
Saint-Petersburg
Russia
next parent reply other threads:[~2004-04-08 17:19 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <u4qrv5hwr.fsf@acm.org>
2004-04-08 17:19 ` Alexander E. Kopilovich [this message]
[not found] ` <bRecOT0TxF@VB1162.spb.edu>
2004-04-08 23:46 ` Reprise: 'in out' parameters for functions Stephen Leake
2004-04-09 9:23 ` Florian Weimer
2004-04-09 10:04 ` Dmitry A. Kazakov
2004-04-09 11:23 ` Martin Krischik
2004-04-09 12:44 ` Dmitry A. Kazakov
2004-04-09 22:48 ` Randy Brukardt
2004-04-14 14:40 ` Robert I. Eachus
2004-04-14 21:20 ` Randy Brukardt
2004-04-09 22:47 ` Florian Weimer
2004-04-10 10:49 ` Dmitry A. Kazakov
2004-04-10 11:11 ` Florian Weimer
2004-04-10 13:26 ` Dmitry A. Kazakov
2004-04-10 20:50 ` Georg Bauhaus
2004-04-11 10:31 ` Dmitry A. Kazakov
2004-04-09 11:27 ` Stephen Leake
2004-04-09 22:46 ` Randy Brukardt
2004-04-09 13:12 ` Wojtek Narczynski
2004-04-09 15:48 ` Expressing physical units (Was: Reprise: 'in out' parameters for functions) Jacob Sparre Andersen
2004-04-10 13:07 ` Wojtek Narczynski
2004-04-10 13:52 ` Jacob Sparre Andersen
2004-04-11 2:45 ` Hyman Rosen
2004-04-11 10:14 ` Expressing physical units Jacob Sparre Andersen
2004-04-11 16:05 ` Hyman Rosen
2004-04-12 6:58 ` Expressing physical units (Was: Reprise: 'in out' parameters for functions) Russ
2004-04-12 10:29 ` Dmitry A. Kazakov
2004-04-13 6:52 ` Russ
2004-04-13 10:55 ` Dmitry A. Kazakov
2004-04-14 4:50 ` Hyman Rosen
2004-04-14 8:49 ` Dmitry A. Kazakov
2004-04-14 16:49 ` Hyman Rosen
2004-04-15 10:37 ` Dmitry A. Kazakov
2004-04-14 7:10 ` Russ
2004-04-14 8:53 ` tmoran
2004-04-14 9:01 ` Vinzent 'Gadget' Hoefler
2004-04-14 9:21 ` Dmitry A. Kazakov
2004-04-13 9:53 ` Wojtek Narczynski
2004-04-15 21:27 ` Expressing physical units Jacob Sparre Andersen
2004-04-16 11:40 ` Dmitry A. Kazakov
2004-04-09 16:17 ` Reprise: 'in out' parameters for functions Georg Bauhaus
2004-04-10 2:28 ` Wojtek Narczynski
2004-04-10 9:46 ` Georg Bauhaus
2004-04-10 10:49 ` Dmitry A. Kazakov
2004-04-10 15:35 ` Wojtek Narczynski
2004-04-10 21:01 ` Georg Bauhaus
2004-04-10 21:16 ` Georg Bauhaus
2004-04-11 13:20 ` exception parameters Stephen Leake
2004-04-12 10:29 ` Dmitry A. Kazakov
2004-04-13 0:58 ` Stephen Leake
2004-04-13 1:30 ` Randy Brukardt
2004-04-13 8:04 ` Jean-Pierre Rosen
2004-04-11 10:31 ` Reprise: 'in out' parameters for functions Dmitry A. Kazakov
2004-04-12 22:02 ` Randy Brukardt
2004-04-13 10:56 ` Dmitry A. Kazakov
2004-04-14 21:12 ` Randy Brukardt
2004-04-15 10:37 ` Dmitry A. Kazakov
2004-04-13 9:30 ` Wojtek Narczynski
2004-04-13 12:00 ` Dmitry A. Kazakov
2004-04-13 22:41 ` Wojtek Narczynski
2004-04-14 8:49 ` Dmitry A. Kazakov
2004-04-14 15:03 ` Wojtek Narczynski
2004-04-15 10:37 ` Dmitry A. Kazakov
2004-04-16 0:29 ` Wojtek Narczynski
2004-04-16 11:36 ` Dmitry A. Kazakov
2004-04-16 19:25 ` Wojtek Narczynski
2004-04-14 15:57 ` Robert I. Eachus
2004-04-15 8:04 ` Dmitry A. Kazakov
2004-04-10 12:32 ` Wojtek Narczynski
2004-04-14 15:46 ` Robert I. Eachus
2004-04-16 1:52 ` Wojtek Narczynski
2004-04-16 5:40 ` Robert I. Eachus
2004-04-16 11:38 ` Wojtek Narczynski
2004-04-16 16:30 ` Robert I. Eachus
2004-04-16 18:38 ` Randy Brukardt
2004-04-16 22:15 ` Wojtek Narczynski
2004-04-17 1:20 ` Robert I. Eachus
2004-04-17 11:42 ` Wojtek Narczynski
2004-04-17 14:14 ` Robert I. Eachus
2004-04-16 19:28 ` Wojtek Narczynski
2004-04-09 17:09 ` Pascal Obry
2004-04-10 2:37 ` Wojtek Narczynski
[not found] <u8yh75y33.fsf@acm.org>
2004-04-07 23:54 ` Alexander E. Kopilovich
[not found] ` <WLZI9T09aE@VB1162.spb.edu>
2004-04-08 2:21 ` Stephen Leake
2004-04-07 20:31 Stephen Leake
2004-04-08 18:42 ` Georg Bauhaus
2004-04-08 20:32 ` Randy Brukardt
2005-01-12 15:15 ` okellogg
2005-01-12 20:14 ` Randy Brukardt
2004-04-08 23:48 ` Stephen Leake
2004-04-13 14:45 ` Robert I. Eachus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox