I am a programmer in C and C++, although I don't stick to either language and write a mixture of the two. Sometimes having code in classes, possibly with operator overloading, or templates and the oh so great STL is obviously a better way. Sometimes use of a simple C function pointer is much much more readable and clear. So I find beauty and practicality in both languages. I don't want to get into the discussion of If you mix them and compile with a C++ compiler, it's not a mix anymore, it's all C++ I think we all understand what I mean by mixing them. Also, I don't want to talk about C vs C++, this question is all about C++11.C++11 introduces what I think are significant changes to how C++ works, but it has introduced many special cases, exceptions and irregularities that change how different features behave in different circumstances, placing restrictions on multiple inheritance, identifiers that act as keywords, extensions of string literals, lambda function variable capturing, etc.I know that at some point in the future, when you say C++ everyone would assume C++11. Much like when you say C nowadays, you most probably mean C99. That makes me consider learning C++11. After all, if I want to continue writing code in C++, I may at some point need to start using those features simply because my colleagues have.Take C for example. After so many years, there are still many people learning and writing code in C. Why? Because the language is good. What good means is that, it follows many of the rules to create a good programming language. So besides being powerful (which easy or hard, almost all programming languages are), C is regular and has few exceptions, if any. C++11 however, I don't think so. I'm not sure that the changes introduced in C++11 are making the language better.So the question is: Why would I learn C++11?
Why would I learn C++11, having known C and C++?
learning;c++;c;c++11
You should learn it if you think you will need to know it in the future in order to get a job. If you are confident you will remain marketable in the workforce as a C/C++ [ and whatever else you might know ] then don't learn it. If your boss tells you to use C++11, say no, I don't do that. If he fires you, go work somewhere else. Learn C++11 when you foresee that soon you will be unable to find satisfactory employment with the skills you currently know.Wanted to clarify my rationale: I'm not anti-C++11. Just saying you could generalize the OP's question to Why should I learn X. I never learned ML, scheme, or haskell because I have a job with C and C++. I'm sure those languages are useful to someone, but they're not beneficial for me to learn right now. If someone offered me good money to program in ML, I might try to learn it.