jjtf said:
I have a related question.
Should I bother learning c++ 11 if I'm learning C++ to get in to the
programming field. Will big C++ 03 projects continue to hire or is C++11
suddenly in demand?
It should be pointed out that C++11 is essentially a superset of C++03.
This means that learning C++11 is essentially the same thing as learning
C++03 along with a number of additional features. So, there is no reason to
place yourself in a spot where you believe you should pick one or the other.
In practical terms, it's probably a good idea to focus on C++03, simply
because it's something that you need to do anyway (being a subset of C++11),
and as it is expected that it will take some time before C++11-compliant
compilers have become widely adopted.
In addition, there is obviously more software out there that doesn't use
C++11 features than the one that does.
Nevertheless, some C++11 features are terribly easy to pick up, and some
were even already available through non-standard components. This means
that there is essentially no excuse to avoid learning them. For example,
range-based for loops, nullptr and using >> in nested templates definitions
are picked up without any problem, as is using override and final in member
function declarations. Even if you don't use C++11's std::tuple and
std::array, there is always boost's version.
So, in short, although it might be preferable to focus for now on C++11's
C++03 subset, you are doing yourself a disservice if you intentionally avoid
getting acquainted with the C++11 goodies.
Rui Maciel