Привязки Libclang python — получить тип специализации метода шаблона

#python #c #llvm #libclang

Вопрос:

Я использую привязки libclang (для удобства: https://pypi.org/project/libclang/). У меня есть следующий фрагмент кода (минимальный пример):

 struct TemplateFunctionSpecHolder
{
    template<typename T>
    int templateMethodSpec_1(double b) { return 7;}
};

template<>
int TemplateFunctionSpecHolder::templateMethodSpec_1<char>(double b)
{
    return 8;
}
 

Я указал курсором на второй метод (спецификация шаблона). К сожалению, cursor.get_num_template_arguments(), cursor.type.get_num_template_arguments() и другие (например, cursor.canonical.get_num_template_arguments()) дают мне -1. Любой метод получения параметров шаблона не будет работать.
Есть ли какой-либо способ получить специализированный тип шаблона? Использование cursor.tokens довольно плохо.