111
|
1 // PR c++/73456
|
145
|
2 // { dg-do compile { target c++17_only } }
|
131
|
3 // { dg-options "-fconcepts" }
|
111
|
4
|
|
5 template<typename...> struct list {};
|
|
6
|
|
7 template<typename Seq>
|
|
8 concept bool Sequence = true;
|
|
9
|
145
|
10 template<Sequence... Seqs> // requires (Sequence<Seqs> && ...)
|
111
|
11 struct zip;
|
|
12
|
|
13 template<Sequence... Seqs>
|
145
|
14 requires requires { typename list<Seqs...>; } // && (Sequence<Seqs> && ...)
|
|
15 struct zip<Seqs...> {}; // { dg-error "does not specialize" }
|
|
16 // The constraints of the specialization and the sequence are not
|
|
17 // comparable; the specializations are unordered.
|
111
|
18
|
|
19 int main()
|
|
20 {
|
|
21 zip<list<>, list<int>> {};
|
|
22 }
|