From 6875105007379938587
X-Google-Thread: f78e5,174aa7b34b06a51
X-Google-Attributes: gidf78e5,public
X-Google-Language: ENGLISH,ASCII-7-bit
Path: g2news1.google.com!news2.google.com!newsfeed.gamma.ru!Gamma.RU!npeer.de.kpn-eurorings.net!newsfeed.vmunix.org!peer-uk.news.demon.net!kibo.news.demon.net!news.demon.co.uk!demon!stump.algebra.com!devnull
From: hyrosen@mail.com (Hyman Rosen)
Newsgroups: comp.std.c++
Subject: Re: Is this really unspecified behavior?
Date: Tue, 20 Dec 2005 15:48:51 GMT
Lines: 38
Sender: mail2news@demon.net
Approved: fjh@cs.mu.oz.au (Fergus Henderson , moderator of comp.std.c++)
Message-ID: <E1Eoj80-0005p9-00@chx400.switch.ch>
References: <1132759176.368850.264850@g43g2000cwa.googlegroups.com>
 <H1phf.161529$zb5.99785@bgtnsc04-news.ops.worldnet.att.net>
 <1132933832.802917.153350@g14g2000cwa.googlegroups.com>
 <1133551647.532929.325730@z14g2000cwz.googlegroups.com>
 <1133583412.951239.208510@g49g2000cwa.googlegroups.com>
 <E1EjGBD-0005T8-00@chx400.switch.ch>
 <1133910546.716987.80030@g14g2000cwa.googlegroups.com>
 <E1EjzL6-0006ic-00@chx400.switch.ch>
 <0l5ep1ppfhdj5p1pcu7e4na4ub0vjajlq3@4ax.com>
NNTP-Posting-Host: news.news.demon.net
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Trace: news.demon.co.uk 1135093739 3595 158.152.254.254 (20 Dec 2005 15:48:59 GMT)
X-Complaints-To: abuse@demon.net
NNTP-Posting-Date: Tue, 20 Dec 2005 15:48:59 +0000 (UTC)
X-Robomod: STUMP, ichudov@algebra.com (Igor Chudov)
X-User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)
X-Accept-Language: en-us, en
X-Virus-Scanned: amavisd-new at cs.mu.OZ.AU
X-Received: (from fjh@localhost)
	by mulga.cs.mu.OZ.AU (8.12.10+Sun/8.12.9/Submit) id jBKFmpWL000894;
	Wed, 21 Dec 2005 02:48:51 +1100 (EST)
X-Path: comp-std-cpp-robomod!not-for-mail
X-Delivered-To: std-c++@ucar.edu
X-Authentication-Warning: mulga.cs.mu.OZ.AU: fjh set sender to devnull@stump.algebra.com using -f
X-Newsgroups: comp.std.c++
Xref: g2news1.google.com comp.std.c++:2863

David Abrahams wrote:
> So do we need to make the behavior of
>    unsigned int x = 1;
>    x << 33;
>    std::cout << x << std::endl;
> unambiguous?

Yes, that's required by the standard, 1.9/2:
     Certain aspects ... are ... implementation-defined
     (for example, sizeof(int)). ... Each implementation
     shall include documentation describing its
     characteristics and behavior in these respects.

This means that a programmer will know, for the
implementation being used, exactly what the code
above will do. It would be better if this behavior
was the same across implementations, but at least
it's specified.

> For high-performance code where there are no side-effects present but
> that fact is hidden from the compiler, I think that would make
> writing efficient programs needlessly cumbersome.

If high-performance code can tolerate the needless
cumbersomeness of having a sequence of statements
execute in a defined order, then it can tolerate the
same thing in an expression. This hypothetical high-
performance code and smart/stupid compiler is a myth
anyway, but people confused by order of evaluation
issues are all too real, as we constantly see on the
newsgroup.

---
[ 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                       ]



