> > There
> > are a few C++ compilers that do not use vtables
>
> Do you have any references/links for that ?
Unfortunately, no. About 15 years ago, I used a C++ compiler for an
embedded processor that did not use vtables -- I know, because part of
the job involved examining the memory layout and writing assembly code
to interact with it. The processor was the Z80, but I don't recall the
compiler or vendor.
It is simply my assumption that other C++ compilers may not use vtables,
either. Perhaps my assumption is wrong.
> I don't (currently) see how to
> implement C++'s turn-off-polymorphism-during-the-ctor semantics without either
> massive complexity (worse than "ordinary" PICs), vtables, or nasty run-time
> tests.
The technique involved a single hidden field in each object to identify
its class. Each virtual method signature foo in some class hierarchy
would cause the compiler to synthesize a _foo_dispatch function, which
did a conditional branch based on the contents of that hidden field.
Calls to the member function would actually call _foo_dispatch, which
would jump to the appropriate code.
Although I can't guarantee this compiler did it, one could turn off
polymorphism beyond a certain superclass simply by changing the type
field.

Signature
Chris Smith