Hi,
Here's a patch which implements a type safe vector API, and a separate
patch
which applies it to the CLASSTYPE_VBASECLASSES.
The basic idea is that you define a vector of pointers with
DEF_VEC_P(typedef)
and a vector of objects with
DEF_VEC_O(typedef)
these produce a structure declaration and a set of inline functions to
manipulate the vector.
You define a pointer to vector object with
VEC(typedef) *v;
and away you go. You have to deal with pointers to vectors, as
the implementation uses the trailing array hack. There is an API
call to allow you to have a structure ending with a vector member
(something that would be useful for a BINFO or TEMPLATE_ARG_VEC).
I couldn't measure time or size difference with this patch, as I
didn't have a testcase with significant virtual bases.
ok?