Re: [boost] [utility] Proposal of a utility component

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
participants (1)
-
Wang Weiwei