comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Is this actually possible?
Date: Wed, 11 Dec 2019 20:58:48 +0100
Date: 2019-12-11T20:58:48+01:00	[thread overview]
Message-ID: <qsrhpq$3o7$1@gioia.aioe.org> (raw)
In-Reply-To: 69c7677b-4aec-4db2-b240-de6b69f762b9@googlegroups.com

On 2019-12-11 18:54, Lucretia wrote:
> On Wednesday, 11 December 2019 17:38:40 UTC, Dmitry A. Kazakov  wrote:
>> On 2019-12-11 17:43, Lucretia wrote:
>>
>>> I was thinking about extensible records recently (not tagged types), and thought to try to export a tagged type to C, not C++. It compiles, but the results aren't quite right, so wondering if it's possible or not.
>>>
>>> The idea is to export an array of tagged types as a C array to either a function or a variable / struct element. i.e.
>>
>> Ada objects of tagged types have varying size and keep tag inside. Both
>> make them utterly incompatible with C.
> 
> I know this, but as the compiler let it go through, I wondered if the tag would be stored elsewhere and not with the tagged type.

Not with tagged types which have T <-> T'Class view conversions.

> Otherwise, shouldn't the compiler complain?

No idea.

If you need objects that could be packed into C arrays use a variant 
record with the choice discriminant having a default.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  parent reply	other threads:[~2019-12-11 19:58 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-11 16:43 Is this actually possible? Lucretia
2019-12-11 17:38 ` Dmitry A. Kazakov
2019-12-11 17:54   ` Lucretia
2019-12-11 19:55     ` Randy Brukardt
2019-12-11 19:58     ` Dmitry A. Kazakov [this message]
2019-12-11 21:12       ` Lucretia
2019-12-11 21:34         ` Dmitry A. Kazakov
2019-12-12  2:00           ` Randy Brukardt
2019-12-12  9:26             ` Niklas Holsti
2020-04-08 16:10             ` Alejandro R. Mosteo
2019-12-12 10:17           ` Lucretia
2019-12-12 14:32             ` Dmitry A. Kazakov
2019-12-12 15:14               ` Lucretia
2019-12-12 15:15                 ` Lucretia
2019-12-12 18:24                   ` Dmitry A. Kazakov
2019-12-12 18:30                     ` Lucretia
2019-12-12 19:09                       ` Dmitry A. Kazakov
2019-12-12 20:54                         ` Lucretia
2019-12-12 21:12                           ` Dmitry A. Kazakov
2019-12-13 11:11                             ` Lucretia
2019-12-11 19:59 ` 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