From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ccaa5b69da45ea4f X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-11-03 12:41:51 PST Sender: mks@JVDSYS Newsgroups: comp.lang.ada Subject: Re: Problems with the GNAT/C++ Interface. References: <3BE3BEA1.D4C66864@cs.tu-berlin.de> From: Jerry van Dijk Date: 03 Nov 2001 21:39:38 +0100 Message-ID: X-Newsreader: Gnus v5.7/Emacs 20.7 NNTP-Posting-Host: 139.92.166.2 X-Trace: 3 Nov 2001 20:38:07 GMT, 139.92.166.2 Organization: Global Network Services - Remote Access Mail & News Services X-Complaints-To: abuse@prserv.net Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!newsfeed.us.prserv.net!prserv.net!news3.prserv.net!139.92.166.2 Xref: archiver1.google.com comp.lang.ada:15749 Date: 2001-11-03T21:39:38+01:00 List-Id: The problem is that the compiler refuses the tagged declaration after the forwarding declaration. I'm no language lawyer, but normally I would expect this to work here. Maybe it's a CPP interface limitation. with Interfaces.CPP; package Chainable_Type is -- type Chainable; -- type Chainable_Class_Access is access all Chainable'Class; type Chainable is tagged record -- next : Chainable_Class_Access; -- prev : Chainable_Class_Access; Vtable : Interfaces.CPP.Vtable_Ptr; end record; function Constructor return Chainable'Class; -- default constructor procedure reset; pragma CPP_Class (Chainable); pragma Import (CPP, Constructor, "chainable"); pragma CPP_Constructor (Constructor); pragma Import (CPP, reset); end Chainable_Type; -- -- Jerry van Dijk | email: jvandyk@attglobal.net -- Leiden, Holland | web: home.trouwweb.nl/Jerry