With C++11 (and C++14), C++ has become a different programming language. As an application programmer you can declare, initialize, iterate, and move far more easily than before. However, there is a price to pay for that power, which ideally only "foundation library developers" should have to pay. But is that really true? How much must the average application programmer know about the tricky details to be able to program effectively in C++11? Because things have changed, we also have to ask how much, and in which direction, do basic programming patterns change with C++11? For example, how should I declare template arguments and when should I use
explicit in C++11?
Even the Library Working Group of the C++ Standardization Committee have no clear answers for these questions. I will present some of the issues I see for the average application programmer, combined with some insights based on discussions about defects in the C++11 Standard Library.
video