如何获取 clang::CXXMethodDecl 的访问说明符?

问题描述 投票:0回答:1

我想知道在编写

public
检查时我的 C++ 方法是
protected
private
还是
clang-tidy
。这似乎是一个非常简单的任务。但我不知道如何解决这个问题,因为
clang::CXXMethodDecl
没有提供获取访问说明符的方法。我怎样才能到达?

c++ abstract-syntax-tree clang-tidy access-specifier
1个回答
0
投票

声明的 C++ 访问说明符存储在

Decl
继承的
CXXMethodDecl
超类中,并且可通过调用
getAccess()
检索。

使用

clang-tidy
进行
getAccess
检查的示例是
VirtualClassDestructorCheck.cpp
,其用法如下:

  const CXXDestructorDecl *Destructor = Node.getDestructor();
  if (!Destructor)
    return false;

  return (((Destructor->getAccess() == AccessSpecifier::AS_public) &&
           Destructor->isVirtual()) ||
          ((Destructor->getAccess() == AccessSpecifier::AS_protected) &&
           !Destructor->isVirtual()));

(@Botje 已经在评论中回答了。我只是将信息放入正确的框中。)

© www.soinside.com 2019 - 2024. All rights reserved.