> Well, I think it's in direct conflict with the C++ standard.  If "X" is
> a 32-bit pointer type, and "x" is a value of type X, "Y" is a 16-bit
> pointer type, then:
> 
>   (X*)(Y*)x
> 
> is supposed to get you back the value of "x", but I don't see how that
> can work, in general.

Where in the standard does it say that?  I could only find references
to conversions to base classes.  Plus, Borland C++ has had multiple
sized pointers since the 80's.

> You only need two classes of pointers if you expect people to use
> the second class in non-trivial expressions, i.e., dereference them,
> perform pointer arithmetic on them, etc.

Like the m16c, which lets you put additional less-frequently used data
in function memory?  Perhaps, a table of strings, or some CRC lookups?

Reply via email to