I much prefer Dev-C++. MSVC 6 is so old that variables declared in for loops have their scope extended past the end of the for loop. That is, you can do this:
Code:
for(int x = 0; x < 10; x ++) {
std::cout << "Number " << x << std::endl;
}
std::cout << "Did " << x << " numbers." << std::endl;
It's most annoying when you have several loops with the same counter, like this:
Code:
for(int x = 0; x < 10; x ++) {
/* ... */
}
for(int x = 0; x < 10; x ++) {
/* ... */
}
MSVC 6 refuses to compile that, because it thinks you're going
Code:
int x;
for(x = 0; x < 10; x ++) {
/* ... */
}
int x;
for(x = 0; x < 10; x ++) {
/* ... */
}
which is a redefinition of x. There are lots of other problems with MSVC's compatibility. And I'm not aware of any compatibility problems with the latest version of Dev-C++'s gcc.
But that's just my opinion.
[edit] The Express edition of Visual Studio probably has better standards-compliance, but it doesn't come with an IDE. If you wanted to use it, you could perhaps download Code::Blocks (which I think can use MS compilers), or maybe configure MSVC 6's IDE to use the Express compiler. [/edit]
Also, did you mean, a better compiler (i.e., more standard-compliant, better optimisations, etc) or a better IDE (i.e., fancier interface, code completion, etc)? I was assuming you meant the former.