From: Braden M. <br...@us...> - 2005-11-15 03:22:36
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1598/src/libopenvrml/openvrml Modified Files: node_impl_util.h Log Message: static_cast the lhs of the comparison to openvrml::event_listener*. Microsoft cl 13.10.3077 appears to have a bug with virtual inheritance and requires this static_cast to generate the correct code. Without the static_cast, the comparison will never be true. Index: node_impl_util.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/node_impl_util.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** node_impl_util.h 3 Nov 2005 04:54:56 -0000 1.4 --- node_impl_util.h 15 Nov 2005 03:22:27 -0000 1.5 *************** *** 249,253 **** { Node & n = dynamic_cast<Node &>(this->listener_->node()); ! return this->listener_ == &arg.second->deref(n); } --- 249,259 ---- { Node & n = dynamic_cast<Node &>(this->listener_->node()); ! // ! // This static_cast shouldn't be necessary. However, ! // Microsoft cl 13.10.3077 will not generate correct code ! // without it. ! // ! return static_cast<const openvrml::event_listener *>( ! this->listener_) == &arg.second->deref(n); } |