Gabriel Dos Reis writes:
 > Hi,

Hi

 > Anthony Williams <[EMAIL PROTECTED]> writes:
 > 
 > [...]
 > 
 > | 3.10p15:
 > |   "If a program attempts to access the stored value of an object through an
 > |   lvalue of other than one of the following types the behavior is undefined:
 > | 
 > |   - the dynamic type of the object,
 > | 
 > |   ...
 > | 
 > |   - a char or unsigned char type."
 > | 
 > | So given a Foo object foo, static_cast<char*>(static_cast<void*>(&foo)) is
 > | legal, and can be used to access the object representation of the object.
 > 
 > There is no question that the above cast is legal.  I thin the issue
 > is elsewhere.  The key question is whether that may be different from
 > 
 >    reinterpret_cast<void*>(&foo);

I thought the issue was whether the pair of static_cast<>s in dangerous_cast<>
was as implementation defined as a reintepret_cast<> would be. If you read my
mail to the end, hopefully I have explained that I think that the
static_cast<> pair is legal and well-defined, as opposed to using
reinterpret_cast, which is implementation-defined. If I haven't made myself
clear, I apologise, and will try again.

Anthony
-- 
Anthony Williams
Senior Software Engineer, Beran Instruments Ltd.
Remove NOSPAM when replying, for timely response.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to