Jonathan Turkanis said:
[...]
Okay, I'm not going to argue about the definition of 'first-rate'. ;-)
Let me put it this way. I haven't yet written any tricky
template-based code which I haven't been able to make work correctly
on VC7.1.
Great. But what does that by itself mean?
I can say, I have written no template code
that I was not able to get work correctly
on VC6. The questions remain: _Why_ didn't
I write it? -- because it wouldn't work --
and How long did it take? -- too long for
too much of the code. [...]
If I'm cornered with different errors spit
out by VC, CW and GCC I usually cook up a
sample and play with Comeau until I got it
done after the book. _Then_ I try to make
the other compilers accept the code. Now,
the interesting thing about this is that,
most of the time, once I got the code the
way it used to be, it is a lot easier to
make the rest of the compilers accept it.
The biggest problem is to get there when
all you have is broken compilers that ICE
on simple syntax errors.
This is where Comeau shines. It is (almost)
100% conforming (so much that I have yet to
find a compiler vendor that wouldn't accept
a bug report if you argue with "but Comeau
does/doesn't accept the code") and it does
produce great error messages.
While you can get your work done with just
about any other compiler, it does take
longer. And it hurts more.
I'm aware of problems with VC7.1's conformance, but so far they
haven't tripped me up.
Missing two-pahes lookup is a PITA if you
write library code. It is stupid to have
your users find silly syntax errors in your
code. I always check my code with CW before
I release it, even if it is meant to be used
with VC only, since CW does check non-
dependend names.
Schobi
--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org
"Sometimes compilers are so much more reasonable than people."
Scott Meyers