Явная специализация внутренней структуры не включена в ASTC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Явная специализация внутренней структуры не включена в AST

Сообщение Anonymous »

Я пытаюсь проанализировать пример кода с помощью вызова

Код: Выделить всё

`clang -Xclang -ast-dump -ferror-limit=0 sample.cpp`
Пример кода начинается с двух фиктивных строк #include (файлы не существуют), затем переходит к определению шаблона и специализации этого шаблона.

Код: Выделить всё

#include "BAD"
#include "VERYBAD"

template 
struct my_struct
{
struct inner {
T a;
};
};

extern int test;

template
struct my_struct::inner
{
};

extern int test2;
Последние два узла:

Код: Выделить всё

|-VarDecl 0x2034635a608  col:12 test 'int' extern
-VarDecl 0x2034635a870  col:12 test2 'int' extern
Но если я удалю #include «VERYBAD», одно «сообщение о фатальной ошибке» все равно останется, но теперь AST включает эту специализацию шаблона.
Какова логика такого поведения парсера? Почему 2 ошибки критичны, а одна нет? И есть ли способ их как-то игнорировать?
Та же проблема в libclang

Подробнее здесь: https://stackoverflow.com/questions/793 ... ded-in-ast
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»