summaryrefslogtreecommitdiff
path: root/test/SemaTemplate/temp_arg_template.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaTemplate/temp_arg_template.cpp')
-rw-r--r--test/SemaTemplate/temp_arg_template.cpp12
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>();
}