[cfe-commits] r72915 - in /cfe/trunk: include/clang/AST/DeclTemplate.h lib/Sema/Sema.h lib/Sema/SemaTemplate.cpp
Douglas Gregor
dgregor at apple.com
Thu Jun 4 20:49:02 PDT 2009
On Jun 4, 2009, at 8:43 PM, Anders Carlsson wrote:
> Author: andersca
> Date: Thu Jun 4 22:43:12 2009
> New Revision: 72915
>
> URL: http://llvm.org/viewvc/llvm-project?rev=72915&view=rev
> Log:
> Add a helper class for building template argument lists.
>
> Modified:
> cfe/trunk/include/clang/AST/DeclTemplate.h
> cfe/trunk/lib/Sema/Sema.h
> cfe/trunk/lib/Sema/SemaTemplate.cpp
>
> Modified: cfe/trunk/include/clang/AST/DeclTemplate.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclTemplate.h?rev=72915&r1=72914&r2=72915&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- cfe/trunk/include/clang/AST/DeclTemplate.h (original)
> +++ cfe/trunk/include/clang/AST/DeclTemplate.h Thu Jun 4 22:43:12
> 2009
> @@ -573,6 +573,20 @@
> }
> };
>
> +/// \brief A helper class for making template argument lists.
> +class TemplateArgumentListBuilder {
> + llvm::SmallVector<TemplateArgument, 16> Args;
> +
> +public:
> + // FIXME: Should use index array size.
> + size_t size() const { return Args.size(); }
> +
> + size_t flatSize() const { return Args.size(); }
> +
> + TemplateArgument *getFlatArgumentList() { return Args.data(); }
> + void push_back(const TemplateArgument& Arg)
> { Args.push_back(Arg); }
> +};
This Builder class would be a wonderful place to put in asserts() for
all of our template argument list invariants (canonical types and
decls, integer arguments having the right bitwidth and sign, etc.).
- Doug
More information about the cfe-commits
mailing list