@aquilafasciata5781

As a hobbiest, I find it’s more difficult finding a use for a lot of these features than it is to learn them in the first place.

@sinom

Please DO actually look into C++20 features.
Sfinae are useful and all but they can also be incredibly difficult to read not only beginners but also people who work wirh C++ every day.

C++20 introduced something called "concepts" which replaces a lot of the usecases of sfinae while also being infinitely easier to read, write understand and even faster to compile.
Knowledge of the basics of concepts should be pretty much mandatory for what you call "level 3 C++ developers"

There are ofc a ton of tiny things in C++17, C++20, C++23 and C++26 that you don't need to know and can be pretty much irrelevant to you (like the deprecation of the overloadable comma operator in [index brackets] in C++23 or the deprecation of the variadic oxford comma in C++26) but some things just make your everyday C++ life way easier

@Volian0

embed seems like a really useful feature, usually I create a "res" folder, but then you need to check if user launched the application in correct directory

@MatthewBieda

5:02

From C++ 20 we don't have to use the erase-remove idiom thanks to std::erase and std::erase_if.

    std::erase_if(nums, [](int x) {
        return x < 10;
    });

I also like the starts_with / ends_with and contains methods on strings from C++ 20/23.

@Steven-tw7iz

You forgot level 6, the stage where you have used C++ so much that you realize how bad it is and revert back to C because 95% of all C++ features are just bad and you don't ever really need them. lol

@SzChudio

TL;DW write simple C++ and advanced C

@winsvega1089

This is exactly why I don't use this super duper tweaks too often. Many times, it is just easier to write it simple and readable than spend the time debugging what went wrong

@bonenintomatensaus

I'm writing my game in C and have no regrets so far

@gvi341984

Thats the issue with undergraduate courses too many cs classes that do nothing. Imagine all the courses you took and replace it with one field of c++. At the end of your undergraduate you would have a good foundation of c++ for everything

@RaaynML

Generic code isn't necessarily aimed at non-library code, if you're not writing an engine that passes or manipulates some unknown types around or youre not rewriting std::array/std::string (in which case just specialize those if you can) or something like that then you don't need to use templates.
You might find it useful to templatize some custom data structure who's members need to be defined according to the types being passed to it or you need to wrap some C interface and don't want to do an unsafe cast to void* but aside from that I wouldn't recommend you turn to them for everyday programming.
Much of C++ is syntactic sugar to assist maintainers/library authors that require some level of type safety to make user code clearer anyways so just use what makes your life easier and avoid everything that doesn't.

@VincentBlair-t2u

Learning all the variations of Lambda Calculus (Typed, Probabilistic, System F) and more  does a great deal in understanding language design.

@20thCB

You forgot Level 6. The culmination of 45 years of work. C++23 introduced the print() function that works like the Python one. There's even a println() version in case you are too lazy to type \n. Hallelujah!

@sledgex9

IMO, SFINAE is largely deprecated with "concepts" (C++20 feature). "concepts" make it more readable and understable too.

@223pistol

Thank you for this, literally finished a university module similar to the one you mentioned. I love c++ using it for making the games i want to. This is gonna help me find the info i need while practising further

@MrAbrazildo

2:33, the "complexity" here means simplicity, actually: it'll follow what the user specified, forbidding others, unless if their existence are obvious, dismissing the user from doing redundant work. This is simplicity and fast productivity at the price of a kind of deep understanding.

@ryuk991

Im still in basic Whenever im in a situation to use vectors, i create a linked list ,after seeing this video ,im glad i chose the right path

@Blendercage

I’ve been sitting at the early stages of level four for a couple of months now. Everything I wanted to do I’ve done. I’m just waiting for some new idea that’ll push me to learn more.

@GoldbergToastyBred

fun fact: in 5:02 on background AI says that #embed will come in C++26 which is accurate but in C23 it already exists :D

@malekith6522

Funny thing is, most of the industry still uses C++11, C++14, or C++17 😄. Most of the time, I don’t need anything too advanced in my work—smart pointers, range-based loops, and std::algorithms usually get the job done. But yeah, sometimes you learn how lambdas work under the hood the hard way—when a specific use case triggers a bug. And honestly, that can be pretty fun.

@kirdow

Clicked on this video after just this past month having decided I should probably stop relying on all the C++ tools that C++17 gives me, and instead move back to C, where there's no hidden functionality, and everything that runs is clear as day and perfectly visible up front in my code base. That's the true level 5 C++ developer. The moment your realize advanced C++ is mostly bloat, and a simple indexed for loop will do just fine.

Thank you for making the video btw. Actually went through my past 12 years of using the language. Amazing to see.