From: "Ekkehard Morgenstern" <ekkehard.morgenstern@onlinehome.de>
Subject: Re: [announcement] SYSAPI and SYSSVC for Windows
Date: Sat, 20 Dec 2003 20:52:30 +0100
Date: 2003-12-20T20:52:30+01:00 [thread overview]
Message-ID: <bs29a5$d6n$1@online.de> (raw)
In-Reply-To: bs203e$8re23$1@ID-77047.news.uni-berlin.de
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote:
> The problem is to tell the customers, that *their* applications should be
> designed so that *our* DLLs and hardware drivers would not stray into an
> unpredictable state.
What's the problem communicating this to the customer?
> A manual reset event only needed when there could be more than one task
> waiting for the event.
Yes that, and then some. (sorry I don't have time right now to elaborate)
> > C++ is well-defined also, btw. There's already a number of ISO standards
> > for C and C++,
>
> A *number of* standards, fascinating! (:-))
For Ada, there's also an '83 and a '95 rationale. ;)
> Come on! C++ does not have:
>
> 1. multiple dispatch;
True, except for constructors and destructors. They're always called for all derived classes of an object.
Regular virtual methods have to call the methods of their parent class if so desired.
> 2. dispatch on function result;
True. Not possible w/ C++.
> 3. dispatch on access types;
False. Method overloading based on parameters of different types, even pointer types, is supported.
> 4. differentiation between class-wide and specific types;
Class-wide types in Ada roughly correspond to base classes in C++.
> 5. functions returning class-wide objects on the stack;
True, but you can return a reference to an object. (I'm not sure if passing a reference to a
temporary object would work)
> 6. streaming / object factory support ('Input, 'Output attributes in Ada);
There are provisions for that in the C++ streams standard library. But I haven't yet read
about the features in Ada you're talking about.
> 7. formal derived type parameter for generics;
False. Of course you can use derived classes or other types in templates.
> Why? The following is OK:
>
> type T is limited private;
> private
> type T is limited record
> I : aliased Integer;
Yes, but I is an Integer. Discrete types can always be aliased.
In my case, it was an array of aliased types, and I wanted to create an access
to an array element.
> "Aliased" is the keyword for that. Objects of some types are always
> aliased:
>
> type T is tagged limited ...;
so I could've just used a tagged limited record?
Like this:
type T is tagged limited
record
A : My_Array_Type;
end record;
procedure F ( O : in out T ) is
Ptr : My_Array_Cell_Ptr;
begin
Ptr := O.A(1)'Access;
end;
Right?
> And finally, if you want to get a pointer in F, then probably
>
> procedure F (O : access T);
>
> is reasonable.
Unfortuantely I cannot pass this on to the entry points of my task. ;)
So I decided to use a regular access types and Limited_Controlled types.
next prev parent reply other threads:[~2003-12-20 19:52 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-17 19:17 [announcement] SYSAPI and SYSSVC for Windows amado.alves
2003-12-17 19:56 ` Georg Bauhaus
2003-12-18 9:08 ` Dmitry A. Kazakov
2003-12-18 12:14 ` Ekkehard Morgenstern
2003-12-18 13:31 ` Georg Bauhaus
2003-12-19 10:45 ` Ekkehard Morgenstern
2003-12-19 17:12 ` Georg Bauhaus
2003-12-19 17:22 ` Vinzent 'Gadget' Hoefler
2003-12-20 0:21 ` Ekkehard Morgenstern
2003-12-20 2:18 ` Georg Bauhaus
2003-12-20 4:40 ` Ekkehard Morgenstern
2003-12-21 3:45 ` Georg Bauhaus
2003-12-21 19:01 ` Piracy was " Robert I. Eachus
2003-12-18 14:32 ` Dmitry A. Kazakov
2003-12-19 11:11 ` Ekkehard Morgenstern
2003-12-19 15:15 ` Hyman Rosen
2003-12-19 15:50 ` Ekkehard Morgenstern
2003-12-19 16:48 ` Hyman Rosen
2003-12-19 16:57 ` Hyman Rosen
2003-12-20 1:17 ` Ekkehard Morgenstern
2003-12-21 2:19 ` Hyman Rosen
2003-12-21 10:34 ` Ekkehard Morgenstern
2003-12-22 9:02 ` Hyman Rosen
2003-12-22 15:17 ` Ekkehard Morgenstern
2003-12-22 15:08 ` Hyman Rosen
2003-12-22 15:31 ` Ekkehard Morgenstern
2003-12-22 16:35 ` Ekkehard Morgenstern
2003-12-23 1:47 ` Hyman Rosen
2003-12-23 8:40 ` Ekkehard Morgenstern
2003-12-23 9:05 ` Stephen Leake
2003-12-19 17:06 ` Dmitry A. Kazakov
2003-12-20 1:49 ` Ekkehard Morgenstern
2003-12-20 11:13 ` Dmitry A. Kazakov
2003-12-20 13:40 ` Ekkehard Morgenstern
2003-12-20 17:21 ` Dmitry A. Kazakov
2003-12-20 19:52 ` Ekkehard Morgenstern [this message]
2003-12-21 4:24 ` Georg Bauhaus
2003-12-21 13:42 ` Dmitry A. Kazakov
2003-12-21 15:48 ` Ekkehard Morgenstern
2003-12-21 17:46 ` Michal Morawski
2003-12-21 18:05 ` Ekkehard Morgenstern
2003-12-22 0:50 ` Robert I. Eachus
2003-12-23 23:02 ` Robert A Duff
2003-12-24 11:20 ` Dmitry A. Kazakov
2003-12-24 16:57 ` Robert A Duff
2003-12-25 14:00 ` Dmitry A. Kazakov
2003-12-28 1:49 ` Dave Thompson
-- strict thread matches above, loose matches on Subject: below --
2003-12-15 14:18 Ekkehard Morgenstern
2003-12-15 15:10 ` Ekkehard Morgenstern
2003-12-15 17:10 ` Jeffrey Carter
2003-12-15 18:38 ` Ekkehard Morgenstern
2003-12-16 0:25 ` Stephen Leake
2003-12-16 0:56 ` Ekkehard Morgenstern
2003-12-16 2:47 ` Ludovic Brenta
2003-12-16 17:45 ` Ekkehard Morgenstern
2003-12-16 19:54 ` Ludovic Brenta
2003-12-16 22:09 ` Ekkehard Morgenstern
2003-12-17 15:24 ` Ludovic Brenta
2003-12-17 23:23 ` Ekkehard Morgenstern
2003-12-19 18:14 ` Warren W. Gay VE3WWG
2003-12-16 5:36 ` tmoran
2003-12-16 17:30 ` Ekkehard Morgenstern
2003-12-15 20:44 ` David Marceau
2003-12-16 0:34 ` Ekkehard Morgenstern
2003-12-17 12:05 ` Dmitry A. Kazakov
2003-12-17 15:00 ` Ekkehard Morgenstern
2003-12-20 19:24 ` Ekkehard Morgenstern
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox