Почему Clang AST показывает два CXXRecordDecl для одного класса? - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь собрать инструменты с помощью libtooling. при использовании clang для вывода AST я обнаружил, что для класса Foo было сообщено о двух CXXRecordDecl. Кажется, что внешний CXXRecordDecl имеет дочерний элемент CXXRecordDecl, который говорит, что это неявный класс Foo. Почему это так?

Definition

AST Dump

1 Ответ

0 голосов
/ 09 июня 2019

Это просто объявление класса.

В вашем примере вы можете заметить, что эти два CXXRecordDecl имеют разные местоположения, а вложенный соответствует прямому объявлению Foo . Без предварительной декларации определение будет указывать на себя.

...