diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-01-19 20:10:05 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-01-19 20:10:05 +0000 |
commit | 6952f1e4256c5b43aee5e98cea4e9b663bd1d413 (patch) | |
tree | 0b18dbc34cc3a9d14d470beaf483f1d618579c8d /include/clang/Serialization/ASTBitCodes.h | |
parent | 61f438ac38cb7ccd40e77861b19f34553694416f (diff) |
Implement support for non-type template parameter packs whose type is
a pack expansion, e.g., the parameter pack Values in:
template<typename ...Types>
struct Outer {
template<Types ...Values>
struct Inner;
};
This new implementation approach introduces the notion of an
"expanded" non-type template parameter pack, for which we have already
expanded the types of the parameter pack (to, say, "int*, float*",
for Outer<int*, float*>) but have not yet expanded the values. Aside
from creating these expanded non-type template parameter packs, this
patch updates template argument checking and non-type template
parameter pack instantiation to make use of the appropriate types in
the parameter pack.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123845 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Serialization/ASTBitCodes.h')
-rw-r--r-- | include/clang/Serialization/ASTBitCodes.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/clang/Serialization/ASTBitCodes.h b/include/clang/Serialization/ASTBitCodes.h index 7a9019f384..bb316f0713 100644 --- a/include/clang/Serialization/ASTBitCodes.h +++ b/include/clang/Serialization/ASTBitCodes.h @@ -728,7 +728,10 @@ namespace clang { /// \brief A record containing CXXBaseSpecifiers. DECL_CXX_BASE_SPECIFIERS, /// \brief A IndirectFieldDecl record. - DECL_INDIRECTFIELD + DECL_INDIRECTFIELD, + /// \brief A NonTypeTemplateParmDecl record that stores an expanded + /// non-type template parameter pack. + DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK }; /// \brief Record codes for each kind of statement or expression. |