The argument against using pure virtual interfaces for plugin and engine
interfaces has been the possibility that virtual calls between code
produced by incompatible C++ compilers may not work correctly or crash.
However, all known pairs of incompatible C++ compilers using different
symbol mangling rules, which precludes cross compiler symbol resolution
for non-C symbols during both linking and dynamic library loading.
The slightly longer explanation is that either the linker or loader
knows beans about C++ and virtual functions -- they just do exact symbol
match. The compiles, however, encode (aka mangle) symbols to include
namespace scoping and argument types. Neither the linker nor the loader
would detect (or care) about different manglements of the same symbols
from different C++ compilers.
See http://www.agner.org/optimize/calling_conventions.pdf for the gory
details.
Matt, the ball is in your court.
--
Jim Starkey
Founder, NimbusDB, Inc.
978 526-1376
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp