/* PR c++/590 */
/* { dg-do compile } */

#include <iostream>
#include <sstream>
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;
}
