2013 C++ _hot_ -
If you used C++ in 2011, you felt old. If you used it in 2012, you felt hopeful. But in ? You finally felt dangerous again.
auto it = my_map.find(key); // The angels sang. Range-based for loops? We had them. Lambda expressions? Oh yes—and they could capture [this] , [=] , [&] , or your entire will to live. 2013 c++
Review by a recovering C++98 programmer
Initialization was still a minefield:
Foo f1(); // Most vexing parse: it's a function declaration. Foo f2{}; // Ah, uniform initialization. Unless it isn't. And compile times? You could brew coffee, drink it, and contemplate your life choices while #include <boost/spirit/> did its dark magic. std::string didn’t have starts_with() or ends_with() . You rolled your own or used .find() == 0 like a savage. std::regex was in the standard—but its performance was so tragically slow that many shops banned it in hot paths. If you used C++ in 2011, you felt old
2013 was the year C++ stopped being your dad’s systems language and started flirting with modernity. The ISO standard known as C++11 (published late 2011) had finally trickled down from compiler god-mode to everyday build systems. GCC 4.8.1 was solid. Clang 3.3 was a revelation. Even Visual Studio 2013— yes, Microsoft —started playing catch-up with real move semantics and variadic templates. Let’s start with auto . In 1998, auto was a joke—a keyword that meant "please ignore me." In 2013, auto meant finally, I don't have to type std::vector<std::unique_ptr<Foo>>::const_iterator like a medieval scribe . You finally felt dangerous again
JavaScript developers who faint at the sight of && or :: . Or anyone who thinks Python’s GIL is "not that bad." Final note: If you're writing C++ today (C++20/23), thank 2013. That was the year the committee stopped polishing the deck chairs on the Titanic and started rebuilding the ship.