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

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

Сообщение Anonymous »

Я пытаюсь проанализировать пример кода по вызову < /p>

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

`clang -Xclang -ast-dump -ferror-limit=0 sample.cpp`

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

#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 ошибки критичны, а одна нет? И есть ли способ их как-то игнорировать?
P.S. У меня нет ни "ПЛОХИХ", ни "ОЧЕНЬ ПЛОХИХ" файлов :)
Та же проблема в libclang

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

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

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

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

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

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