[cfe-dev] Matching Indirect base classes

Daniel Jasper djasper at google.com
Fri Nov 8 06:32:48 PST 2013


Take a look at CXXRecordDecl::forallBases() and
CXXRecordDecl::findInBases(). Dependent on what you want to do, one of them
might do what you need.

Cheers,
Daniel


On Fri, Nov 8, 2013 at 2:39 AM, Pedro Delgado Perez <pedro.delgado at uca.es>wrote:

>  Hello,
>
> Please, I need some help with an issue I noticed a few days ago and I am
> not able to solve.
>
> To illustrate my problem, I show this piece of code:
>
> class A{
>     public:
>         A(): a(1) {};
>         int a;
> };
>
> class B: public A{
>     public:
>         B(): b(2){};
>         int b;
> };
>
> class C: public B{
>     public:
>         C(): c(3){};
>         int b;
>         int a;
> };
>
> We have three classes, where:
> B  inherits directly from A
> C  inherits directly from B and INDIRECTLY from A
>
> Using CXXRecordDecl::base_class_iterator, the classes indirectly inherited
> are not visited. Please, can someone explain me how to take into account
> these indirectly inherited base classes? I've been thinking on recursion
> (use base_class_iterator on each class directly inherited), but I'm sure
> there should be another simpler way to do this.
>
> Thanks in advance,
>
> Pedro.
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20131108/fb3b5c1e/attachment.html>


More information about the cfe-dev mailing list