2013 C++ ((free)) May 2026

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.

Initialization was still a minefield:

It was ugly in places. It was over-engineered in others. But for the first time in over a decade, C++ felt alive . 2013 c++

⭐⭐⭐⭐ (one star removed for template error messages longer than War and Peace ) If you used C++ in 2011, you felt old

std::for_each(v.begin(), v.end(), [](int x) { std::cout << x * 2 << "\n"; }); Smart pointers ( unique_ptr , shared_ptr ) moved from "Boost-only magic" to standard-issue memory safety. Raw new and delete started looking like exposed wiring in a modern home. But let’s not rewrite history. C++ in 2013 still had teeth—and fangs. Move semantics were powerful, but the rules for when a move happens vs. a copy were arcane enough to require a PhD in "value category theology" (lvalues, rvalues, xvalues, glvalues, prvalues... shudder ). 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.