Christensen Tom,

On Wednesday October 09, 2002 03:19, Christensen Tom wrote:
> Ok,
> I've been using Linux for about 1 year now, and 1 thing that has always
> worked right out of the box is the gcc compiler... until now.
> installed redhat 8.0 and it won't compile c++ programs...
> not even hello world
>
> #include <iostream>
>
> int main()  {
>   cout << "Hello World\n";
>   return 0;
> }
>
> when I compile that it says "undeclared function cout".
> if I include iostream.h, it compiles successfully but complains because
> iostream.h is deprecated.  What gives? why's it broken? I've got iostream
> in my usr/include/c++/3.2 directory it should work, but it doesn't.

It's not broken, it's been fixed. ;)

The 3.2 version of GCC is VERY standards compliant and requires you to be as 
well. This especially means that namespaces are very important. This is a 
frequently overlooked part of the standard and means there is a ton of 
"broken" code, including the snippet above.

You have two choices that will stop all your errors (and give you better 
code)...

Sample 1 :
#include <iostream>

using namespace std;

int main ()
{
  cout << "Hello World\n";

  return 0;
}

or Sample 2 :
#include <iostream>

int main ()
{
  std::cout << "Hello World\n";

  return 0;
}

When to use which is up to your needs.

-- 
Brian Ashe                                                     CTO
Dee-Web Software Services, LLC.                  [EMAIL PROTECTED]



-- 
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list

Reply via email to