blob: eb3cfe7369920aa8b64623427aca96617d90bff3 [file] [log] [blame]
// 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());
}