Boost logo

Boost :

From: Wang Weiwei (wwwang_at_[hidden])
Date: 2006-02-04 21:40:13


hello Tobias Schwinger,

Thanks for all of your bad news. :-)

Wang Weiwei

>Wang Weiwei wrote:
>> template <typename destination_type, typename source_type>
>> destination_type force_cast(source_type s)
>> {
>> union
>> {
>> source_type s;
>> [...]
>
>Looks like an almost failsafe recipe for disaster ;-).
>
>It isn't safe to use 'union' in a generic context like this one. Union members should be of POD type (BTW. that's why there is Boost.Variant).
>
>>
>> ... a pointer to non-virtual function is actualy a normal function pointer:
>>
>
>Another dangerous assumption:
>
>With MSVC's __thiscall calling convention (the default setting of this compiler) the this-pointer is passed in a CPU register (namely ECX) and not on the stack...
>
>
>Sorry for all the bad news,
>
>Tobias
>
>
>P.S: An array_cast that allows to change array bounds and dimensions (with checking, in contexts where possible) would have my vote (that is, if it's not in Boost already, somewhere)...
>
>
>_______________________________________________
>Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


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