I read that C++0x is likely to be officially released during march 2010, and that it will become an ISO standard for the end of 2011.
Is this really the most likely scenario, or does it risk to be postponed again and again?I'm also wondering when will it become the de-facto standard: when will anyone (including the most popular piece of software, like Qt, windows libraries etc) use it instead of using C++03?
I guess it's not so easy for the popular libraries to switch to C++0x, since I don't think they will force all their users to upgrade compilers.I hope this question is not considered a subjective one; I don't think it is since answers can (and should) be based on the experience of switching to C++03
For better or worse, anything about a "de facto standard" is subjective on at least two fronts. One is when a compiler includes enough C++0x features to qualify as implementing C++0x, and the second is when use of those became "accepted". Most C++ compilers already include at least a few significant C++0x features, and a fair amount of code (e.g., parts of recent releases of Boost) can make use of them when present. Other features are much less available and/or there's little (practical) code that makes use of them.
The standard is a bit like a piece of software that's currently in beta testing (well, the official "beta test" period is over). Basically, known bugs are being fixed, but no new features are being added. To an extent, it's now being driven by schedule -- i.e., short of a major problem being found, they'll fix as many bugs as possible before the release date, and when time runs out, it'll be released. Like (large) software packages, there's also a delay between the time it's finalized and the time it's publicly released. That's longer than the norm with software, but also less relevant -- once it's finalized, the compiler vendors will have copies to work to, and the final stamp of release doesn't mean all that much.
精彩评论