[C++-sig] Cross module inheritance failing with the Intel compiler on Linux

Ralf W. Grosse-Kunstleve rwgk at yahoo.com
Thu Mar 11 05:40:17 CET 2004


--- "J. Michael Owen" <mikeowen at llnl.gov> wrote:
> >>> import A
> >>> import B
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> RuntimeError: extension class wrapper for base class 4Base has not been
> created yet
> >>>

I can reproduce the error with this compiler:

Intel(R) C++ Compiler for 32-bit applications, Version 7.1   Build 20031225Z

But it works with this compiler:

Intel(R) C++ Compiler for 32-bit applications, Version 8.0   Build 20040122Z
Package ID: l_cc_pc_8.0.058_pe059

>>> import A
>>> import B
>>> B.Derived()
Base()
Derived()
<B.Derived object at 0x4035b504>
>>> <ctrl-d>
~Derived()
~Base()

I know cross-module inheritance works with Intel 7.1 for non-virtual classes. I
don't have any idea what to do about the failure for virtual classes. Can you
switch to the 8.0 compiler?

Ralf


__________________________________
Do you Yahoo!?
Yahoo! Search - Find what you’re looking for faster
http://search.yahoo.com




More information about the Cplusplus-sig mailing list