[clang-cl] Ignore /Wv and /Wv:17 flags
[llvm-project.git] / clang / test / CXX / dcl.decl / dcl.meaning / dcl.fct / p14.cpp
blobac9344dea1c185aef733f68ff2cc0223e3fe19b3
1 // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
3 template<typename T> struct identity;
4 template<typename ...Types> struct tuple;
6 template<typename T, typename U> struct is_same {
7 static const bool value = false;
8 };
10 template<typename T> struct is_same<T, T> {
11 static const bool value = true;
14 // There is a syntactic ambiguity when an ellipsis occurs at the end
15 // of a parameter-declaration-clause without a preceding comma. In
16 // this case, the ellipsis is parsed as part of the
17 // abstract-declarator if the type of the parameter names a template
18 // parameter pack that has not been expanded; otherwise, it is parsed
19 // as part of the parameter-declaration-clause.
21 template<typename T, typename ...Types>
22 struct X0 {
23 typedef identity<T(Types...)> function_pack_1;
24 typedef identity<T(Types......)> variadic_function_pack_1; // expected-warning {{varargs}} expected-note {{pack}} expected-note {{insert ','}}
25 typedef identity<T(T...)> variadic_1;
26 typedef tuple<T(Types, ...)...> template_arg_expansion_1;
31 // FIXME: Once function parameter packs are implemented, we can test all of the disambiguation