annotate gcc/testsuite/g++.dg/cpp1z/decomp46.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 // PR c++/86836
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 // { dg-do compile { target c++11 } }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 // { dg-options "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 struct A {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 int operator*();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 void operator++();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 bool operator!=(A);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 template <typename> class map {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 public:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 A begin();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 A end();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 template <typename T> void mergemap(map<T> orig, map<T> toadd) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 for (auto p : toadd)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 auto [orig] = orig; // { dg-error "use of 'orig' before deduction of 'auto'" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 } // { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 int
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 main() {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 map<double> x, y;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 mergemap(x, y);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 }