Jerry Coffin wrote:
>
> I would say rather the opposite. One of the major side-effects of adding
> Concepts is that template error messages will generally become a great
> deal more readable. This will frequently make the language much more
> approachable. Likewise, making ">>" to be equivalent to "> >" for
> enclosing template arguments will keep a lot of beginners from running
> into strange error messages.
>
> Rvalue references will be a bit the same way -- right now, the most
> obvious way to write some code is terribly inefficient. With rvalue
> references, you'll be able to avoid a lot of contortions currently made
> in the name of efficiency.
>
> To make a long story short, C++ 0x will make the language simpler and
> more straightforward for most people to use most of the time.
OK, for application developers, I will probably agree (I will be sure
when I see C++0x in practice).
However, for library writers, or for people who "want to know the whole
language", I think things will be complicated.
Until now, we have the "selective ignorance" approach in C++. That is,
although you may know the whole language, be as high level as you can
be, and ignore the implementation details as long as your project
doesn't need them (e.g. the possible implementation of standard
manipulators).
For example, will a newcomer be able to understand and learn all the new
core language features? And I am not talking about the auto keyword, or
the list<vector<T>> (consecutive '>'s) stuff.
And for a complete newcomer, will it be possible to learn the whole
language (including the standard library) from scratch?
I think, C++ may be "broken by its weight" (massive core language
features/standard library).
I am concerned that C++0x may be the "C99" failure of C++03, or even worse.
--
Ioannis Vranos
C95 / C++03 Developer
http://www.cpp-software.net