Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename TypeLoc>
- std::vector<CppSharp::CppParser::TemplateArgument>
- Parser::WalkTemplateArgumentList(const clang::TemplateArgumentList* TAL,
- TypeLoc* TSTL)
- {
- using namespace clang;
- auto params = std::vector<CppSharp::CppParser::TemplateArgument>();
- auto typeLocNumArgs = TSTL && TSTL->getTypePtr() ? TSTL->getNumArgs() : 0;
- for (size_t i = 0, e = TAL->size(); i < e; i++)
- {
- auto TA = TAL->get(i);
- TemplateArgumentLoc TArgLoc;
- TemplateArgumentLoc *ArgLoc = 0;
- for (size_t j = 0; j < typeLocNumArgs; j++)
- {
- TArgLoc = TSTL->getArgLoc(j);
- if (TArgLoc.getArgument().structurallyEquals(TA))
- {
- ArgLoc = &TArgLoc;
- break;
- }
- }
- auto Arg = WalkTemplateArgument(TA, ArgLoc);
- params.push_back(Arg);
- }
- return params;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement