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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!mcvax!enea!sommar From: sommar@enea.se (Erland Sommarskog) Newsgroups: comp.lang.ada Subject: Re: Overloading of ":=" Message-ID: <4193@enea.se> Date: 26 Dec 88 13:07:14 GMT Organization: ENEA DATA AB, Sweden List-Id: Bill Wolfe (billwolf@hubcap.clemson.edu) writes: >>From article <4189@enea.se>, by sommar@enea.se (Erland Sommarskog): >> [Mats Weber and Erland Sommarskog rehash the argument about >> assignment procedures having an "in out" parameter for the destination] >> >> Now, WHY, is A of mode "in out" in the Assign procedure? If we had >> "out" only, nothing "erroneous" could occur. > > Because the ASSIGN procedure needs to be able to DESTROY the old > value; DESTROY procedures must read objects during the process > of destroying them. Please review the recent discussion rather > than recreating it, unless there are new issues to be considered. Talk about rehash. We all know, except Bill of course, that the memory- management problem is best handled with garbage collection. As for the answer to the question above, the answer is simply that Generic Data_type is limited private; With procedure Assign(A : out Data_type; B : in Data_type); Package... is illegal. Parameters of a limited type may not be in "out" mode. This means, as Mats pointed out, that to use this package for type without a default value, like standard.integer, the user have to do something erroneous. I, in my turn, pointed out that this was not a problem in practice except for constrained types, and that this case also easily was handled with a "supress" pragma. Please read more carefully before you flame. We didn't talk about memory management. We didn't even talk about access types.-- Erland Sommarskog ENEA Data, Stockholm This signature is not to be quoted. sommar@enea.se