【发布时间】:2018-08-23 01:01:56
【问题描述】:
在 Clang ASt C++ 中遍历 FunctionDecl 时如何检测函数是否为静态。 请提出建议。
【问题讨论】:
标签: c++ clang abstract-syntax-tree
在 Clang ASt C++ 中遍历 FunctionDecl 时如何检测函数是否为静态。 请提出建议。
【问题讨论】:
标签: c++ clang abstract-syntax-tree
'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 */
};
【讨论】: