On Friday, 10 March 2017 at 19:53:52 UTC, Ali Çehreli wrote:
- constexpr (a poor man's CTFE) - Type inference - Range-based for - Lambdas
As far as I can tell C++11 was mostly an absorption of existing practices, largely syntactical in nature. Lambdas are only syntactical sugar over function objects (which in turn is a weak version of Beta patterns, a language Bjarne most certainly knew of as he has complained about someone running off with his book on the language and the fact that he shows a lot of respect for Kristen Nygaard). The for loop was pure syntactical sugar over STL iterators, on the level of a C-macro...
- (Not sure about D timeline here) Explicit overrides and final
Beta has it.
- Null pointer constant
Simula. Which C++ is a direct descendant of.
At this point it feels like copying almost the entire list so I stop. :)
Well, the only big thing in C++11 was standardization of ownership mechanisms and getting more compact syntax for function objects (lambdas).
The C++ language semantics didn't change much IMO. The idioms has changed a lot though. Although it isn't as visible in the codebases on github yet...