CXXRecordDecl: bases() vs vbases()

Hello everyone,
While trying to iterate over the base classes of a class/struct represented by a CXXRecordDecl, I found two methods: one is bases() and the other is bases().
Is it that bases() returns all instantiable base classes, while vbases() returns all abstract base classes? Or is it something different?
Warm regards,
Deep

I'd guess 'bases()' probably gives direct base classes and vbases()
probably gives direct virtual base classes, eg:

struct x : y, virtual z { };

probably 'bases()' contains 'y' and 'vbases()' contains 'z' - but test
it and find out?

I’d guess ‘bases()’ probably gives direct base classes and vbases()
probably gives direct virtual base classes, eg:

struct x : y, virtual z { };

probably ‘bases()’ contains ‘y’ and ‘vbases()’ contains ‘z’ - but test
it and find out?

bases() gives all direct bases (whether virtual or not), and vbases() gives all virtual bases (whether direct or not).

ah, well, there you go :slight_smile: