docs: def cxxRecordDecl(*args):
      """Matches C++ class declarations.
  
      >>> from glud import *
      >>> config = '''
      ...  class W;
      ...  template<typename T> class X {};
      ...  struct Y {};
      ...  union Z {};
      ... '''
      >>> m = cxxRecordDecl()
      >>> for c in walk(m, parse_string(config).cursor):
      ...     print(c.spelling)
      W
      X
      """
      kinds = [
          CursorKind.CLASS_DECL,
          CursorKind.CLASS_TEMPLATE,
      ]
      inner = [ PredMatcher(is_kind(k)) for k in kinds ]
      return allOf(anyOf(*inner), *args)