Clang AST для шаблонного метода шаблонного класса - PullRequest
1 голос
/ 22 апреля 2020

У меня есть следующий фрагмент кода:

template <typename T>
class Foo
{
  template <typename U>
  void bar() const;
};

[[template <typename T>]]
template <typename U>
void Foo<T>::bar() const
{
}

Вывод дерева AST для метода foo дает следующее для определения метода (несущественные детали были удалены для ясности):

`-FunctionTemplateDecl <line:10:1, line:14:1> col:11:14 bar
 |-TemplateTypeParmDecl <line:10:11, col:20> col:20 typename depth 1 index 0 U
 `-CXXMethodDecl <line:9:1, line:14:1> line:11:14 bar 'void () const'
  `-CompoundStmt <line:12:1, line:14:1>

Я не могу понять, как найти местоположение детали template <typename T> (которая находится в блоке [[...]]). Я не смог найти ничего связанного с Clang AST API. Любая помощь будет оценена.

...