blob: eb3cfe7369920aa8b64623427aca96617d90bff3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// PR c++/49834
// PR c++/50020
// { dg-do compile { target c++11 } }
struct A
{
template <typename T> T get_value() const;
};
struct B {
A first, second;
};
struct C
{
B* begin() const;
B* end() const;
};
template <typename Ret>
struct D
{
Ret f(const C &p)
{
for (const B &i: p) // OK
i.second.get_value<int>();
for (const auto &i: p) // ERROR
i.second.get_value<int>();
return Ret(0);
}
};
void g()
{
D<int>().f(C());
}
|