error in VTT example

Alex Samuel samuel at codesourcery.com
Thu Jun 29 18:11:11 UTC 2000


There is I believe an error in the VTT example presented in section
2.6.2.  

The order of secondary virtual pointers is stated as inheritance graph
preorder.  Primary non-virtual bases are omitted.  Therefore I believe
the order of the secondary vptrs in the in example VTT should be V1,
C2, V2 (as opposed to C2, V2, V1 as shown in entries [5], [6], and
[7]).  Though C1 is skipped because it's a primary base, the preorder
traversal has to continue to its children (or else in other
inheritance graphs some base classes will be missed completely).
Therefore you get to V1 via C1 before hitting C2.

It might make sense to clarify this in 2.6.2, item 3, with language
something like,

    The order of the virtual pointers is inheritance graph preorder.
    Though primary non-virtual bases do not get secondary virtual
    pointers, they do not otherwise affect the ordering.

Regards
Alex Samuel
CodeSourcery LLC




More information about the cxx-abi-dev mailing list