Неустановленный шаблон функции / класса ast не генерируется clang
Я работаю над синтаксическим анализатором C/C++, основанным на clang libtooling. Я использую AST, сгенерированный clang для разбора кода. Недавно я заметил, что для шаблонного класса или функции, которая не является экземпляром 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; }
};
Кто-нибудь сталкивался с таким поведением? Это ожидаемое поведение. Я хочу провести статический анализ кода, и мне все равно, создаются ли классы / функции шаблона или нет. Без АСТ я не смогу сделать правильный статический анализ.
Не могли бы вы помочь мне решить эту проблему. Заранее спасибо.
Спасибо, Хемант