From -4417563595742073677
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,d93488bb970aa444
X-Google-Attributes: gidf78e5,public
X-Google-ArrivalTime: 2001-06-13 08:28:06 PST
Path: archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!newsfeed.icl.net!dispose.news.demon.net!news.demon.co.uk!demon!mail2news.demon.co.uk!not-for-mail
From: Pete Becker <petebecker@acm.org>
Newsgroups: comp.std.c++
Subject: Re: How to test for NaNs and infinites?
Date: Wed, 13 Jun 2001 15:19:20 GMT
Organization: Dinkumware, Ltd
Approved: Fergus Henderson <fjh@cs.mu.oz.au>, moderator of comp.std.c++
Message-ID: <3B278187.9E196C80@acm.org>
References: <3B176D2F.70C3E7F7@meteo.fr> <usrihtkqfjd9qfj2bgtbp6pj530asi567k@4ax.com> <b172eb2f.0106071330.5f984936@posting.google.com> <9fql8h$pfg$1@news.hal-pc.org> <3B21100E.5B25F7AA@acm.org> <9frdlp$14bc$1@news.hal-pc.org> <fl3d9ail4o.fsf@sel.cmla.ens-cachan.fr> <9g2em7$1pkk$1@news.hal-pc.org> <fl7kyi5769.fsf@jambon.cmla.ens-cachan.fr> <9g7q93$1lu1$1@news.hal-pc.org>
X-Trace: mail2news.demon.co.uk 992445566 mail2news:21547 mail2news mail2news.demon.co.uk
X-Complaints-To: abuse@demon.net
X-Mail2News-Path: news.demon.net!mulga.cs.mu.oz.au
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)
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Date: 13 Jun 2001 15:07:11 GMT
X-Accept-Language:  en
Lines: 56
Xref: archiver1.google.com comp.std.c++:6060

Greg Brewer wrote:
> 
> "Gabriel Dos Reis" <dosreis@cmla.ens-cachan.fr> wrote in message
> news:fl7kyi5769.fsf@jambon.cmla.ens-cachan.fr...
> > "Greg Brewer" <nospam.greg@brewer.net> writes:
> > | "Gabriel Dos Reis" <dosreis@cmla.ens-cachan.fr> wrote in message
> > | news:fl3d9ail4o.fsf@sel.cmla.ens-cachan.fr...
> > | > "Greg Brewer" <nospam.greg@brewer.net> writes:
> > | > Then would you mind to explain what you mean by "legal C++"?
> > | I mean it will compile with any C++ compiler.
> > Then in that perspective, your proposed function has it wrong because
> > it invokes an undefined behaviour.
> 
> Huh?????  Name one compiler that won't compile it.    Undefined behavior is
> not illegal.  Plus it works for most people.
> 

>From the C++ language definition:

	1.3.12 undefined behavior

	behavior, such as might arise upon use of an erroneous program
construct
	or erroneous data, for which this International Standard imposes no
	requirements. ... [Note: permissible undefined behavior ranges from
	ignoring the situation completely with unpredictable results, to
behaving
	during translation or program execution in a documented manner
characteristic
	of the environment (with or without the issuance of a diagnostic
message), to
	terminating a translation or execution (with the issuance of a
diagnostic
	message).

Of course, the Standard can't say that something is "illegal"; all it
can say is that it cannot be used in a conforming program. And that's
precisely what the above definition says. Code that produces undefined
behavior does not conform to the language definition. Or, in the usual
colloquialism, it's illegal.

In particular, the validity of a C++ code construct cannot be determined
by polling compilers. The validity of a C++ code construct is determined
by the language definition, not by compilers that attempt to implement
that definition.	

-- 
Pete Becker
Dinkumware, Ltd. (http://www.dinkumware.com)

---
[ 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.research.att.com/~austern/csc/faq.html                ]



