annotate gcc/testsuite/g++.dg/concepts/variadic4.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR c++/73456
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
2 // { dg-do compile { target c++17_only } }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
3 // { dg-options "-fconcepts" }
111
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 template<typename...> struct list {};
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 template<typename Seq>
kono
parents:
diff changeset
8 concept bool Sequence = true;
kono
parents:
diff changeset
9
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
10 template<Sequence... Seqs> // requires (Sequence<Seqs> && ...)
111
kono
parents:
diff changeset
11 struct zip;
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 template<Sequence... Seqs>
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
14 requires requires { typename list<Seqs...>; } // && (Sequence<Seqs> && ...)
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
15 struct zip<Seqs...> {}; // { dg-error "does not specialize" }
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
16 // The constraints of the specialization and the sequence are not
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
17 // comparable; the specializations are unordered.
111
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 int main()
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 zip<list<>, list<int>> {};
kono
parents:
diff changeset
22 }