diff options
| -rw-r--r-- | clang/test/SemaTemplate/temp_arg_template.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/clang/test/SemaTemplate/temp_arg_template.cpp b/clang/test/SemaTemplate/temp_arg_template.cpp index 2053b7978db..dec5dd37d48 100644 --- a/clang/test/SemaTemplate/temp_arg_template.cpp +++ b/clang/test/SemaTemplate/temp_arg_template.cpp @@ -1,5 +1,4 @@ // RUN: %clang_cc1 -fsyntax-only -verify %s -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s template<template<typename T> class X> struct A; // expected-note 2{{previous template template parameter is here}} @@ -32,9 +31,7 @@ template<typename T> void f(int); A<f> *a9; // expected-error{{must be a class template}} // Evil digraph '<:' is parsed as '[', expect error. -#if __cplusplus < 201103 A<::N::Z> *a10; // expected-error{{found '<::' after a template name which forms the digraph '<:' (aka '[') and a ':', did you mean '< ::'?}} -#endif // Do not do a digraph correction here. A<: :N::Z> *a11; // expected-error{{expected expression}} \ @@ -59,20 +56,18 @@ namespace N { } // PR12179 -#if __cplusplus < 201103 template <typename Primitive, template <Primitive...> class F> // expected-warning {{variadic templates are a C++11 extension}} struct unbox_args { typedef typename Primitive::template call<F> x; }; -#else -template <template <typename> class... Templates> + +template <template <typename> class... Templates> // expected-warning {{variadic templates are a C++11 extension}} struct template_tuple {}; template <typename T> struct identity {}; -template <template <typename> class... Templates> +template <template <typename> class... Templates> // expected-warning {{variadic templates are a C++11 extension}} template_tuple<Templates...> f7() {} void foo() { f7<identity>(); } -#endif |

