why do I get an error for that?

Code:
istream* input;

int main(int argc, char* argv[])
{
      switch (argc)
      {
	  case 1:		// read from standard input
	        input = &cin;
	        break;
	  case 2:
	        input = new istringstream(argv[1]);		// read argument string
	        break;
	  default :
	        error ("Too many arguments");
	        return 1;
      }

...
I get the following error :

Error : illegal use of incomplete struct/union/class 'std::basic_istringstream<char, std::char_traits<char>, std::allocator<char>>'
calc.cpp line 94 input = new istringstream(argv[1]); // read argument string