// RUN: %clang_cc1 -std=c++2a -verify %s template constexpr bool is_same_v = false; template constexpr bool is_same_v = true; template concept same_as = is_same_v; // expected-note@-1{{because 'is_same_v' evaluated to false}} template concept either = (is_same_v || ...); template struct T { template... Us> // expected-note@-1{{because 'same_as' evaluated to false}} static void foo(Us... u, int x) { }; // expected-note@-1{{candidate template ignored: deduced too few arguments}} // expected-note@-2{{candidate template ignored: constraints not satisfied}} template struct S { template... Vs> static void foo(Vs... v); }; }; int main() { T::foo(1); // expected-error{{no matching function for call to 'foo'}} T::foo(1, 2, 3); // expected-error{{no matching function for call to 'foo'}} T::S::foo(1, 'a'); T::S::foo('a', true); }