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.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f92fbb4a0420dd57 X-Google-Attributes: gid103376,public From: ncohen@watson.ibm.com (Norman H. Cohen) Subject: Re: some questions re. Ada/GNAT from a C++/GCC user Date: 1996/04/02 Message-ID: <4jre2c$17vn@watnews1.watson.ibm.com>#1/1 X-Deja-AN: 145433348 distribution: world references: <4je9ju$174r@watnews1.watson.ibm.com> <4jhe1v$m0g@dayuc.dayton.saic.com> <4jp17p$17vn@watnews1.watson.ibm.com> <3160B03B.5230@mcs.com> organization: IBM T.J. Watson Research Center reply-to: ncohen@watson.ibm.com newsgroups: comp.lang.ada Date: 1996-04-02T00:00:00+00:00 List-Id: In article <3160B03B.5230@mcs.com>, Mike Young writes: |> I'm confused. I thought I read an explicit rule (in Barne's book) that |> no order of evaluation was specified for declarations. You're confused. The word "evaluation" applies to expressions, not declarations. Declarations get "elaborated", not evaluated. It is indeed true that no evaluation order is specified for the subexpressions of an expression (or, in most cases, such as A(F(X)) := B(G(X)); -- A and B are arrays, F and G are functions for the various expressions in a statement). However, the declarations in a sequence of declarations are always elaborated in order. (Barnes has an explicit statement to that effect near the bottom of page 72 of his Ada 95 book.) -- Norman H. Cohen ncohen@watson.ibm.com