Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2003-01-27 06:25:52


From: "Daniel Frey" <d.frey_at_[hidden]>
> On Sun, 26 Jan 2003 18:50:13 +0100, David Abrahams wrote:
>
> > Hum. It's fine to make Peter's particular example defined, but I'm a
> > little concerned about asking to lift *all* undefined behavior for
>
> Maybe I'm missing something, but what about a pointer to some type T and
> this:
>
> if( p ) p->f();
>
> If p is 0, p->f(); is undefined, isn't it? But just because the
> expression may be undefined (given some conditions or not) cannot make
> the whole program undefined if the expression is not executed, right?
> Otherwise the language would be completly useless...

Right. That's why I posted the example in the first place.

However, there is a difference. Whether p->f() invokes undefined behavior is
determined by the value of p (i.e., at runtime.) Whether passing x to an
ellipsis invokes undefined behavior is determined by the type of x (i.e. at
compile time.)


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk