Find classes with non-virtual destructor

// ClassType [ MemberDecls[*]::MemberDecl / Declarators[*]::AnyDeclarator [ isDestructor() ] [ not isVirtual() ] ]

// ClassType [ MemberDecls[*]::MemberFunc [ isDestructor() ] [ not isVirtual() ] ]

1   //Find classes with non-virtual destructor
2   // this class matches
3   class A { 
4         public:
5           ~A();
6   };
7   // this one matches too 
8   class B { 
9         public:
10         ~B() {}
11  }; 
12  // this class doesn't match - its destructor is virtual
13  class C {
14       public:
15         virtual ~C() {}
16  };