Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. template<typename TypeLoc>
  2. std::vector<CppSharp::CppParser::TemplateArgument>
  3. Parser::WalkTemplateArgumentList(const clang::TemplateArgumentList* TAL,
  4. TypeLoc* TSTL)
  5. {
  6. using namespace clang;
  7.  
  8. auto params = std::vector<CppSharp::CppParser::TemplateArgument>();
  9. auto typeLocNumArgs = TSTL && TSTL->getTypePtr() ? TSTL->getNumArgs() : 0;
  10.  
  11. for (size_t i = 0, e = TAL->size(); i < e; i++)
  12. {
  13. auto TA = TAL->get(i);
  14. TemplateArgumentLoc TArgLoc;
  15. TemplateArgumentLoc *ArgLoc = 0;
  16. for (size_t j = 0; j < typeLocNumArgs; j++)
  17. {
  18. TArgLoc = TSTL->getArgLoc(j);
  19. if (TArgLoc.getArgument().structurallyEquals(TA))
  20. {
  21. ArgLoc = &TArgLoc;
  22. break;
  23. }
  24. }
  25. auto Arg = WalkTemplateArgument(TA, ArgLoc);
  26. params.push_back(Arg);
  27. }
  28.  
  29. return params;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement