Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3604: Access violation on diamond inheritance
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-05-16 22:30:36
#3604: Access violation on diamond inheritance
----------------------------------+-----------------------------------------
Reporter: kondo@⦠| Owner: ramey
Type: Support Requests | Status: reopened
Milestone: Boost 1.41.0 | Component: serialization
Version: Boost 1.40.0 | Severity: Not Applicable
Resolution: | Keywords:
----------------------------------+-----------------------------------------
Comment(by ramey):
This is still not working for me.
I'm using:
test_diamond_complex.cpp
latest 1.43 release version
void_cast_add_or.cpp as you've added
void_cast.hpp as above
MSVC 7.1
static version of the library
As far as I can tell, the following code
{{{
virtual void const * upcast(void const * const t) const {
const Base * b =
dynamic_cast<const Base *>(
static_cast<const Derived *>(t)
);
return b;
}
}}}
on line # 219 of void_cast.hpp isn't working.
It should do a dynamic_cast to EX1Level2_A * from a EX1Level1 * but the
pointer doesn't change and subsequent to that the program crashes.
I should say that the next item in the stack shows line # 348 in
void_cast.cpp which is a mystery to me.
Double check this to see if we're still getting the same results. If not,
I can check my change into the trunk and you can run from there. I might
also check with another compiler - but I'm curious to know what you're
using so we be sure that's not a source of difference.
So nice to meet you in person at BoostCon 2010
Robert Ramey
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/3604#comment:13> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:03 UTC