From -2249140582143024349
X-Google-Thread: f78e5,52112cea9d2ccd4a
X-Google-Attributes: gidf78e5,public
X-Google-Language: ENGLISH,ASCII-7-bit
Path: g2news1.google.com!news4.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.speakeasy.net!news.speakeasy.net.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 25 Jul 2005 16:10:01 -0500
Return-Path: <devnull@stump.algebra.com>
X-Authentication-Warning: mulga.cs.mu.OZ.AU: fjh set sender to devnull@stump.algebra.com using -f
X-Robomod: STUMP, ichudov@algebra.com (Igor Chudov)
Delivered-To: std-c++@ucar.edu
Message-ID: <42E5536F.8050407@tiscali.nl>
From: Marc Schoolderman <squell@tiscali.nl>
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.7.6) Gecko/20050319
X-Accept-Language: en-us, en
MIME-Version: 1.0
Subject: Re: =?ISO-8859-1?Q?=A75=2E2=2E2/8_unspecified_evluation_od?=
 =?ISO-8859-1?Q?er=3F?=
References: <CsidnX1xcd4C73_fRVn-tA@speakeasy.net> <42e41533$0$11001$9a6e19ea@news.newshosting.com> <E1Dx5no-0007Lc-00@chx400.switch.ch>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: amavisd-new at ucar.edu
X-Virus-Scanned: amavisd-new at cs.mu.OZ.AU
Newsgroups: comp.std.c++
Approved: Fergus Henderson <fjh@cs.mu.oz.au>, moderator of comp.std.c++
X-Virus-Scanned: amavisd-new at cs.mu.OZ.AU
Date: Mon, 25 Jul 2005 16:06:25 CST
Lines: 28
NNTP-Posting-Host: 65.182.171.162
X-Trace: sv3-kAxNLahbDesheXCUT54b2Ztj1raK4xRsjlK8ILiGu8jOAxz1u0O0JAC0HZpQ1f00GwhsqIUFdpfV00E!ssngPpt3nnVREYPAJ6y35WcPBBwD1uAMpHJCll+V0dpdygY7lUiZQboFwch8CIkN8RFUTYXk/MlP!mKvf7PRj
X-Complaints-To: abuse@speakeasy.net
X-DMCA-Complaints-To: abuse@speakeasy.net
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.32
Xref: g2news1.google.com comp.std.c++:1484

Hyman Rosen wrote:

> Evaluation should proceed
> left-to-right. First the function name or expression itself is
> evaluated, then each parameter is initialized in turn from its
> argument expression, and that expression is fully evaluated with
> all side effects completed before evaluation of the next begins.
> If an exception is thrown during this process, then all already-
> initialized parameters are destructed. That is the only sane and
> sensible way to define the process.

Then, you'll still have problems in cases like these;

   istream_iterator<int> w(cin);
   if( *w++ < *w++ ) ...

One of the things I have come to appreciate about C(++) is that the
freedom of expressiviness comes with an equal responsibility not to cram
too much in one statement.

~Marc.

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]



