我想知道在编写
public
检查时我的 C++ 方法是 protected
、private
还是 clang-tidy
。这似乎是一个非常简单的任务。但我不知道如何解决这个问题,因为 clang::CXXMethodDecl
没有提供获取访问说明符的方法。我怎样才能到达?
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 已经在评论中回答了。我只是将信息放入正确的框中。)