我正在开发一个基于clang libtooling的C / C ++解析器。 我使用clang生成的AST来解析代码。 最近我观察到的是,对于未实例化的模板类或函数,clang不会为该类或函数生成AST。
实施例: 代码和相应的AST如下所示
template <typename T>
int serializeToJson(const T& value)
{
using OutputStream = std::ostream;
using OutputArchive = std::istream;
int i;
int k;
return i + k;
}
template <class T>
class TClass
{
T *ptr;
TClass() { ptr = nullptr; }
};
Nlog Console target git hub example
有没有人遇到过这样的行为?这是预期的行为吗?我想对代码进行静态分析,我不关心模板类/函数是否被实例化。没有AST我就无法进行正确的静态分析。
请你帮我解决这个问题。 提前谢谢。
谢谢, 与Hemant