如何在Clang AST C ++中检测静态函数

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

如何在Clang ASt C ++中通过FunctionDecl检测函数是否为静态。请建议。

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

'FunctionDecl :: getStorageClass()'可用于获取在声明上编写的存储类说明符,或'NamedDecl :: getFormalLinkage()'可获取声明的符号的实际链接。

例如:

             /* getStorageClass() , getFormalLinkage() */
       void func0(); /* SC_None   , ExternalLinkage */
static void func1(); /* SC_Static , InternalLinkage */
extern void func2(); /* SC_Extern , ExternalLinkage */

static void func3(); /* SC_Static , InternalLinkage */
       void func3(); /* SC_None   , InternalLinkage */
extern void func3(); /* SC_Extern , InternalLinkage */

class C
{
  static void func4(); /* SC_Static , ExternalLinkage */
};
© www.soinside.com 2019 - 2024. All rights reserved.