Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2002-08-12 11:00:39


From: "Philippe A. Bouchard" <philippeb_at_[hidden]>

> > I'm not sure if this ptr<> type under discussion works this way, but in
> > general you can't conformingly use char* arithmetic with offsets to
find
> > the sub-parts of non-POD types.
>
> The offsets are what static_cast<>s return.

No, static_cast<> returns pointers, not offsets.

The standard doesn't guarantee that the offset calculated from a given
static_cast will work again, given the same source and target types.
Actually doing the static_cast is the only portable way to find the Base*
from a Derived*. Indirection through a function pointer which does the
static_cast might be an option.

-Dave

-----------------------------------------------------------
           David Abrahams * Boost Consulting
dave_at_[hidden] * http://www.boost-consulting.com


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