diff options
Diffstat (limited to 'clang/include/clang/AST/DeclTemplate.h')
| -rw-r--r-- | clang/include/clang/AST/DeclTemplate.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/include/clang/AST/DeclTemplate.h b/clang/include/clang/AST/DeclTemplate.h index 57d645b740c..aad19a63ef0 100644 --- a/clang/include/clang/AST/DeclTemplate.h +++ b/clang/include/clang/AST/DeclTemplate.h @@ -580,6 +580,30 @@ public: return reinterpret_cast<Expr *>(TypeOrValue); } + /// \brief Iterator that traverses the elements of a template argument pack. + typedef const TemplateArgument * pack_iterator; + + /// \brief Iterator referencing the first argument of a template argument + /// pack. + pack_iterator pack_begin() const { + assert(Kind == Pack); + return Args.Args; + } + + /// \brief Iterator referencing one past the last argument of a template + /// argument pack. + pack_iterator pack_end() const { + assert(Kind == Pack); + return Args.Args + Args.NumArgs; + } + + /// \brief The number of template arguments in the given template argument + /// pack. + unsigned pack_size() const { + assert(Kind == Pack); + return Args.NumArgs; + } + /// \brief Retrieve the location where the template argument starts. SourceLocation getLocation() const { return StartLoc; } |

