Of course, this will affect other functions and seemingly standard wide open again.
Unlikely. They still want to close the standard soon, which is one of the main reasons for removing concepts. Making it “wide open” to unrelated changes will simply drop everything they have acquired using clear concepts.
Anyway .... From the remaining C ++ 0x add-ons, I can't think of anything that I would like to remove. However, I agree with their decision regarding the concepts. The Stroustrup article did highlight some serious issues. The current concept specification is admittedly simplifying error reporting in templates, but it would do so by drastically reducing the utility of general programming — the price I don't want to pay.
When I first read this article, it scared me because I assumed it was too late in the process of making major changes to the specification. It turns out that this is not so, and the committee was ready to take dramatic action.
But other than that, I think C ++ 0x is in good shape. Other new features look decent.
Of course, there are many existing functions that I would like to remove. First of all, the specialization of vector<bool> . There are other popular examples of functions that did not work (export keyword, exception specifications), but vector specialization is the only one that cannot be ignored. While we are not trying to export templates, it does not matter that the keyword exists (and is not implemented by compilers), and we can simply refrain from using exception specifications, but each time we need the bools vector, we are bitten by the dumb premature optimization that slipped into the current one standard.
Unfortunately, it looks like they refused to remove it. (The last thing I checked, it was not even out of date).
Of course, a lot of the old C-crack can also be discarded, but recently I discovered that one change that I really would like to see is the interception of the Iostreams library. Drop it and create a new STL-style I / O library based on common programming.
The current Oost library of Iostreams is ugly, slow, complex, and inflexible. There are too many voodoo involved in defining new flows, too few standard types of flows, too little flexibility (the problem that made me realize how limited the library was was that I needed to extract the float from the string., But if you needed to do this is often, you don’t want to copy the input string every time (as stringstream does) - where is the stream that works in the existing range of iterators? Or the raw array, even?)
Throw away IOstreams, develop a modern replacement, and C ++ will be greatly improved.
And maybe do something in the string class too. It works kind of ok'ish like it is now, but really, what with a huge amount of member functions? Most of them will work better and be more general, as free functions. Too much of the standard library relies specifically on the class of strings, when in principle it can work with any container or even with an iterator ( std::getline , I look at you)