1 // PR c++/14586 2 3 enum E { e }; 4 5 E & operator |= (E &f1, const E &f2); 6 7 E operator | (const E &f1, const E &f2) { 8 E result = f1; 9 result |= f2; 10 return result; 11 } 12 foo()13 template <typename> void foo () { 14 const E flags = e | e; 15 } 16 17 template void foo<double> (); 18