1 // { dg-options -std=c++0x } 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)7E begin(E e) { return e; } end(E e)8E end(E e) { return X; }; 9 E operator++(E& e) { return e = E(e+1); } 10 main()11int main() 12 { 13 for (auto e: e1) 14 { 15 printf ("%d ", e); 16 } 17 } 18