So I guess I’m not the only one who finds it less than stellar. It’s just a first contact, but it’s been a rough ride: bugs and general slowness in the IDE, bugs in standard user interface elements (I managed to crash the scrollbar in the Output window!?!?!), the whole "security push" making a good chunk of the standard library deprecated by default.
Oh well I’m sure I will find good stuff after using it for some time.
Random bits I found out:
– Changing the fonts and colors to a black background is as nightmarish as ever.
– When converting projects from 2003, check the resulting options thoroughly. It seems some defaults have changed, but the conversion doesn’t take this into account, so an option that you had on default (Yes) in 2003 may now be default (No) in 2005. "for scoping rules" comes to mind.
– Also about projects, immediately disable warning 4996. Until their Security Push crap becomes ANSI, I don’t want to hear about it. You can do it at once for all projects and configurations, so it’s not a big deal.
– "Automatic use of precompiled headers" is gone. Either you set them up specifically, or you don’t get any. A pity for small projects, but all in all, good riddance.
– Compilation times seem faster, maybe thanks to the multithreaded compilation taking advantage of HyperThreading.
– Disabling exceptions and using the STL seems like a no-no. Lots of weirdness on this topic.
– Much more strict checking for C++ details. One that stood out today is the fact that you must pass lvalues (roughly: values that can be modified) to functions that receive non-const references.
Obviously, you must pass lvalues to no-const references. That is mandatory. You can pass rvalues to const-references.
What are you referring to?
Hm… it seems that what we found was a rare case where 2003 didn’t detect the error and compiled fine. I can dig the exact piece of code at work if you really want to know. As usual, it involved templates.