На основе clang сделать утилиту, которая выводит дерево инстанциаций шаблонов в данном коде на C++.
template<typename T1> class S1 {};
template<typename U> class S2 { S1<U> s; };
S2<int> x;
S1<float> y;
S2 (U -> int)
S1 (T -> int)
S3 (U -> float)
Для сдачи задания отправить на dmitry.kozhevnikov at jetbrains dot com:
- ссылки на форк LLVM+clang на GitHub с внесенными необходимыми изменениями
- инструкцию по сборке и запуску утилиты
Также по этому адресу можно отправлять любые вопросы, возникающие по мере выполнения задания.
- Building and Running Clang
- Create a ClangTool
- tools/clang/tools/extra/tool-template/ToolTemplate.cpp
- Опция командной строки у clang "templight-dump"