|New Implementation of Virtual Functions in C++ email@example.com (1999-11-18)|
|Re: New Implementation of Virtual Functions in C++ firstname.lastname@example.org (1999-11-19)|
|Re: New Implementation of Virtual Functions in C++ email@example.com (Matthias Neeracher) (1999-11-19)|
|Re: New Implementation of Virtual Functions in C++ firstname.lastname@example.org (1999-11-19)|
|Re: New Implementation of Virtual Functions in C++ email@example.com (Jan Gray) (1999-11-23)|
|From:||"Jan Gray" <firstname.lastname@example.org>|
|Date:||23 Nov 1999 13:08:06 -0500|
|Keywords:||C++, code, comment|
Doug Landauer wrote in message 99-11-111...
>I wouldn't venture to guess whether these are "more common" than the
>cfront-style vtables yet, since I don't know how MS-VC++ does it :-)
VC++ employs so-called adjuster thunks for MI, and it introduced a
mechanism to avoid them most of the time (unless the particular
derived-class member function overrides a virtual function inherited
from more than one base class.)
There are also "vtordisp adjuster thunks" (virtual base class's
construction displacement adjuster thunks) which ensure correct
behavior, during base class construction/destruction, of calls on
overridden virtual functions of virtually inherited base classes.
VC++ also uses "vcall thunks" to help implement pointers to member
functions. A vcall thunk is a deferred virtual function call. These
help to represent, in a single code pointer, which member function to
call and whether to call it virtually or not, and greatly simplify
each pmf call code site.
Sorry if you don't like the terminology.
[Nice article. Can you get them to stick it in MSDN? -John]
Return to the
Search the comp.compilers archives again.