1 // { dg-do compile { target c++11 } }
2 
3 extern "C" int printf (const char *, ...);
4 
5 enum E { e1, e2, e3, X };
6 E operator*(E e) { return e; }
begin(E e)7 E begin(E e) { return e; }
end(E e)8 E end(E e) { return X; }
9 E operator++(E& e) { return e = E(e+1); }
10 
main()11 int main()
12 {
13   for (auto e: e1)
14     {
15       printf ("%d ", e);
16     }
17 }
18