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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c6517ef820c06ae0,start X-Google-Attributes: gid103376,public From: steve.folly@rdel.co.uk (Steve Folly) Subject: generic formal object parameters of mode 'in out' Date: 2000/11/06 Message-ID: <3a06dc1c.259466533@news.rrds.co.uk>#1/1 X-Deja-AN: 690332611 X-Complaints-To: postmaster@rdel.co.uk X-Trace: rdel.co.uk 973528953 12265 172.21.185.71 (6 Nov 2000 16:42:33 GMT) Organization: RDEL NNTP-Posting-Date: 6 Nov 2000 16:42:33 GMT Newsgroups: comp.lang.ada Date: 2000-11-06T16:42:33+00:00 List-Id: Hi, While reading the ARM today I noticed it's possible to specify generic formal objects of mode 'in out'. I was just wondering what use this could have? Para 12.4 [1b] does state that it's like a renaming declaration of the explicit actual parameter. In my program I have the following generic package... subtype Template_String is string(1..4); generic type T is private; Default : T; Template : Template_String; package P The_Template : constant String := Template; . . end P; We have had to declare The_Template because we've found that the parameters are not visible from an instantiation, ie. declare package X is new P ( T => Integer, Default => 0, Template => "NNNN" ); begin Ada.Text_Io.Put_Line("The template is " & X.Template ); -- uh oh! Ada.Text_Io.Put_Line("The template is " & X.The_Template ); -- OK end; Am I right in thinking that by making Template an 'in out', I don't need The_Template. And, if it is now an 'in out', can I change Template at any time outside of the instantiation (or inside it) ? Just my disjointed ramblings at the end of long day... Cheers, Steve Folly.