Opened 13 years ago
Closed 13 years ago
#3933 closed Bugs (duplicate)
serialization assertion failure on windows using DLLs
Reported by: | Owned by: | ||
---|---|---|---|
Milestone: | Boost 1.43.0 | Component: | None |
Version: | Boost 1.42.0 | Severity: | Problem |
Keywords: | Cc: |
Description
On Windows I get an assertion failure in void_cast.cpp line 225 with the following scenario:
DLL 1 has concrete class C which inherits from virtual B, which inherits from virtual A. BOOST_CLASS_EXPORT(C) is used.
a static C exists.
DLL 2 has concrete class D which inherits from virtual B. BOOST_CLASS_EXPORT(D) is used.
a static D exists and will be instantiated when the library is loaded.
main.cpp - contains an instantiation of D to make main.exe depend on both DLL 1 and DLL 2.
this same test passes on UNIX. It's as if on windows it is trying to register B twice. Taking out the assert (as was the case in all previous boost versions) makes things work ok.