diff options
Diffstat (limited to 'test/SemaTemplate/temp_arg_template.cpp')
| -rw-r--r-- | test/SemaTemplate/temp_arg_template.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/test/SemaTemplate/temp_arg_template.cpp b/test/SemaTemplate/temp_arg_template.cpp index 4a0ed05d87991..6d93f1504a469 100644 --- a/test/SemaTemplate/temp_arg_template.cpp +++ b/test/SemaTemplate/temp_arg_template.cpp @@ -75,7 +75,11 @@ template <template <typename> class... Templates> // expected-warning@-2 {{variadic templates are a C++11 extension}} #endif -struct template_tuple {}; +struct template_tuple { +#if __cplusplus >= 201103L + static constexpr int N = sizeof...(Templates); +#endif +}; template <typename T> struct identity {}; template <template <typename> class... Templates> @@ -85,6 +89,12 @@ template <template <typename> class... Templates> template_tuple<Templates...> f7() {} +#if __cplusplus >= 201103L +struct S : public template_tuple<identity, identity> { + static_assert(N == 2, "Number of template arguments incorrect"); +}; +#endif + void foo() { f7<identity>(); } |
