Actually that code is invalid. They changed #include<iostream.h> to #include<iostream> and you now either have to put std::(sexual transmited disease) before most functions or say: using namespace std;. See why C++ is kidna confusing?
DIfferent compilers use different things. VC++6 uses string.h, and errors if you enter it without the extension. Welcome to the real world :/
When i used vc++6 (..well..im still using uit just now but i may switch after my current project) i downloaded updated headers that were compatibe enough with vc++6 while still being more-up to date I needed them to do certain win32 things).
Erm..Ever noticed how sometimes it actually lets to do partial specification on a function template, and not on a class template?..(and other times..its the other way around).
One time i even got an error in a macro, but it was in white space: I retyped it exactly and it compiled fine.
C++ prog > U{} of C++ progs
#include<iostream>
int main()
//Actual ascii from Wikipedia
{
using std::cout ;
using std::endl ;
cout
<<char(9)<<" ___" <<endl
<<char(9)<<"{o,o}" <<endl
<<char(9)<<"|)__)" <<endl
<<char(9)<<'-'<<'"'<<'-'<<'"'<<'-'<<endl
<<char(9)<<"O RLY?" <<endl
<<endl
<<"Press Return to continue..."
<<endl;
std::cin.get();
return 0;
}