From: "Lawrence D’Oliveiro" <ldo@nz.invalid>
Subject: Re: In precision typing we trust
Date: Fri, 29 Aug 2025 03:53:41 -0000 (UTC) [thread overview]
Message-ID: <108r884$1osg9$3@dont-email.me> (raw)
In-Reply-To: 108p3om$16qn1$3@dont-email.me
On Thu, 28 Aug 2025 10:24:54 +0200, Dmitry A. Kazakov wrote:
> On 2025-08-28 03:45, Lawrence D’Oliveiro wrote:
>
>> But the function has to return the base class type, it cannot have
>> different return types dynamically.
>
> Of course you can. That is the meaning of the term "class" and "class
> type" as a type which values are the values of the class members.
Assigning the result to a variable of type subclass involves dynamic type
checking. Which you have been insisting so far is “untyped”.
>> Note how you have a switch-expression that uses the value of the
>> event-type field to return the corresponding type object, and I cast
>> the info pointer to point to that type. And then the “additional”
>> variable-length array can contain pointers to additional data,
>> depending on the event type.
>
> That is not much OO as you have all alternatives static.
No, they are dynamic, not static. See below.
> But for the OO approach:
>
> function F return Abstract_Packet'Class is begin
> case Kind_Of is
> when Foo =>
> return Foo_Packet; -- Derived from Abstract_Packet
> when Bar =>
> return Bar_Packet; -- Derived from Abstract_Packet
> ...
>
> Note also that one can return instances not knowing the specific type at
> all.
But they are still of that same “Abstract_Packet'Class”, which is the base
class. You cannot specify “Foo_Packet'Class” as the return type on one
call, “Bar_Packet'Class” on another call, etc.
next prev parent reply other threads:[~2025-08-29 3:53 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-18 10:29 In precision typing we trust Kevin Chadwick
2025-08-18 11:08 ` Dmitry A. Kazakov
2025-08-18 13:59 ` Niocláisín Cóilín de Ghlostéir
2025-08-18 15:03 ` Dmitry A. Kazakov
2025-08-18 22:52 ` Niocláisín Cóilín de Ghlostéir
2025-08-19 6:24 ` J-P. Rosen
2025-08-19 7:29 ` Dmitry A. Kazakov
2025-08-20 0:41 ` Lawrence D’Oliveiro
2025-08-20 15:49 ` Kevin Chadwick
2025-08-20 19:00 ` Dmitry A. Kazakov
2025-08-20 0:40 ` Lawrence D’Oliveiro
2025-08-20 13:59 ` Niocláisín Cóilín de Ghlostéir
2025-08-20 14:58 ` Dmitry A. Kazakov
2025-08-20 17:18 ` Niocláisín Cóilín de Ghlostéir
2025-08-20 19:04 ` Dmitry A. Kazakov
2025-08-20 20:38 ` Niocláisín Cóilín de Ghlostéir
2025-08-20 21:59 ` Lawrence D’Oliveiro
2025-08-20 23:37 ` Niocláisín Cóilín de Ghlostéir
2025-08-21 21:37 ` Lawrence D’Oliveiro
2025-08-21 1:31 ` Keith Thompson
2025-08-20 18:10 ` Niklas Holsti
2025-08-20 18:54 ` Kevin Chadwick
2025-08-22 1:27 ` Alastair Hogge
2025-08-22 12:49 ` Kevin Chadwick
2025-08-22 22:13 ` Lawrence D’Oliveiro
2025-08-22 23:21 ` Niocláisín Cóilín de Ghlostéir
2025-08-23 22:58 ` Lawrence D’Oliveiro
2025-08-24 8:37 ` Dmitry A. Kazakov
2025-08-24 11:05 ` Niocláisín Cóilín de Ghlostéir
2025-08-24 12:59 ` Dmitry A. Kazakov
2025-08-24 21:51 ` Lawrence D’Oliveiro
2025-08-24 21:50 ` Lawrence D’Oliveiro
2025-08-25 8:19 ` Dmitry A. Kazakov
2025-08-25 8:51 ` Paul Rubin
2025-08-25 10:41 ` Dmitry A. Kazakov
2025-08-25 17:12 ` Paul Rubin
2025-08-25 20:09 ` Dmitry A. Kazakov
2025-08-25 21:13 ` Lawrence D’Oliveiro
2025-08-26 7:59 ` Dmitry A. Kazakov
2025-08-27 0:13 ` Lawrence D’Oliveiro
2025-08-27 7:39 ` Dmitry A. Kazakov
2025-08-27 23:10 ` Lawrence D’Oliveiro
2025-08-27 23:49 ` Dmitry A. Kazakov
2025-08-28 0:35 ` Lawrence D’Oliveiro
2025-08-28 7:54 ` Dmitry A. Kazakov
2025-08-28 8:50 ` Kevin Chadwick
2025-08-28 9:02 ` Dmitry A. Kazakov
2025-08-25 21:27 ` Paul Rubin
2025-08-26 7:27 ` Lawrence D’Oliveiro
2025-08-25 21:10 ` Lawrence D’Oliveiro
2025-08-26 8:14 ` Dmitry A. Kazakov
2025-08-26 16:48 ` Paul Rubin
2025-08-26 17:01 ` Kevin Chadwick
2025-08-26 19:43 ` Dmitry A. Kazakov
2025-08-27 0:00 ` Paul Rubin
2025-08-27 0:14 ` Lawrence D’Oliveiro
2025-08-27 7:51 ` Dmitry A. Kazakov
2025-08-27 20:45 ` Keith Thompson
2025-08-28 8:38 ` Dmitry A. Kazakov
2025-08-28 9:00 ` Von Ottone
2025-08-27 23:16 ` Lawrence D’Oliveiro
2025-08-28 8:48 ` Dmitry A. Kazakov
2025-08-29 3:57 ` Lawrence D’Oliveiro
2025-08-29 7:53 ` Dmitry A. Kazakov
2025-08-30 22:29 ` Lawrence D’Oliveiro
2025-08-31 8:56 ` Dmitry A. Kazakov
2025-08-28 12:25 ` Björn Persson
2025-08-28 22:14 ` Lawrence D’Oliveiro
2025-08-29 15:30 ` Björn Persson
2025-08-30 3:34 ` Lawrence D’Oliveiro
2025-08-30 8:49 ` Kevin Chadwick
2025-08-30 22:34 ` Lawrence D’Oliveiro
2025-08-27 0:09 ` Lawrence D’Oliveiro
2025-08-27 9:06 ` Kevin Chadwick
2025-08-26 19:36 ` Dmitry A. Kazakov
2025-08-27 0:10 ` Lawrence D’Oliveiro
2025-08-27 7:57 ` Dmitry A. Kazakov
2025-08-27 23:12 ` Lawrence D’Oliveiro
2025-08-28 0:07 ` Dmitry A. Kazakov
2025-08-28 0:38 ` Lawrence D’Oliveiro
2025-08-28 8:00 ` Dmitry A. Kazakov
2025-08-26 9:06 ` Dmitry A. Kazakov
2025-08-23 0:26 ` Kevin Chadwick
2025-08-23 22:59 ` Lawrence D’Oliveiro
2025-08-23 23:58 ` Kevin Chadwick
2025-08-24 21:49 ` Lawrence D’Oliveiro
2025-08-25 8:19 ` Dmitry A. Kazakov
2025-08-25 20:58 ` Lawrence D’Oliveiro
2025-08-27 9:01 ` Kevin Chadwick
2025-08-27 9:24 ` Dmitry A. Kazakov
2025-08-27 23:07 ` Lawrence D’Oliveiro
2025-08-28 0:00 ` Dmitry A. Kazakov
2025-08-28 0:22 ` Lawrence D’Oliveiro
2025-08-28 0:11 ` Kevin Chadwick
2025-08-28 0:20 ` Kevin Chadwick
2025-08-28 0:33 ` Lawrence D’Oliveiro
2025-08-28 1:17 ` Alex // nytpu
2025-08-28 1:45 ` Lawrence D’Oliveiro
2025-08-28 8:24 ` Dmitry A. Kazakov
2025-08-29 3:53 ` Lawrence D’Oliveiro [this message]
2025-08-29 8:07 ` Dmitry A. Kazakov
2025-08-30 22:27 ` Lawrence D’Oliveiro
2025-08-31 9:15 ` Dmitry A. Kazakov
2025-08-28 9:17 ` Kevin Chadwick
2025-08-29 3:51 ` Lawrence D’Oliveiro
2025-08-29 9:27 ` Kevin Chadwick
2025-08-29 9:33 ` Kevin Chadwick
2025-08-30 6:21 ` Lawrence D’Oliveiro
2025-08-31 0:43 ` Kevin Chadwick
2025-08-31 7:30 ` Lawrence D’Oliveiro
2025-08-31 8:51 ` Kevin Chadwick
2025-08-28 9:04 ` Kevin Chadwick
2025-08-29 3:55 ` Lawrence D’Oliveiro
2025-08-29 9:41 ` Kevin Chadwick
2025-08-30 3:31 ` Lawrence D’Oliveiro
2025-08-28 9:05 ` Kevin Chadwick
2025-08-28 9:43 ` Dmitry A. Kazakov
2025-08-29 3:54 ` Lawrence D’Oliveiro
2025-08-29 8:15 ` Dmitry A. Kazakov
2025-08-30 22:25 ` Lawrence D’Oliveiro
2025-08-31 9:26 ` Dmitry A. Kazakov
2025-08-28 0:30 ` Lawrence D’Oliveiro
2025-08-20 19:10 ` Niocláisín Cóilín de Ghlostéir
2025-08-18 23:27 ` Lawrence D’Oliveiro
2025-08-18 23:46 ` Kevin Chadwick
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox