/* PR c++/590 */ /* { dg-do compile } */ #include #include using namespace std; enum ExternalEnum { EXTERNAL_VALUE = 2 }; class BadStream : public ostringstream { public: enum InternalEnum { VALUE = 0 }; BadStream( InternalEnum e ) {} BadStream( InternalEnum e, int i ) {} }; int main() { ( BadStream( BadStream::VALUE ) ) << "foobar" << endl; BadStream((BadStream::InternalEnum)BadStream::VALUE ) << "foobar"; BadStream::InternalEnum in = BadStream::VALUE; BadStream( in ) << "foobar"; BadStream( BadStream::VALUE, 0 ) << "foobar" << endl; // This didn't used to compile: BadStream( BadStream::VALUE ) << "foobar" << endl; return 0; }