The 5 Levels Of C++



Check out my C++ gamedev course for beginners! 6.5 hours of video content where I guide you through making a game step by step!

How to make a C++ game Youtube Course:

Join my Discord:

Join this channel if you want to support me 😻:

Learn Advanced C++:

Music:

MDK – Jelly Castle

Music: Evan King – everythingisok
Music: Evan King – Let’s Go!
Music: Evan King – World’s Edge
Music: Evan King – Spicy Boom
Music: Evan King – Invisible Walls

Minecraft soundtrack: C418 – Aria Math

source

40 Comments

  1. 4:54, Now, in C++, you can also execute code during compilation.
    Throw exceptions and catch exceptions, navigate virtual functions and etc))
    From there, you can even drag structures, strings and arrays into runtime now))

  2. My favourite part of certain C++ compilers is the “asm” keyword which lets you write code that is actually performant in your overly overloaded apps. It’s also pretty much a level 10, you ignorant n00bs!

  3. In the 1990s and early 2000s, we had C++98 and C89. We did not have any of the mess created by so-called "modern" C++. C++ then was just C with classes. Now it has evolved into something that is just plain nasty. For example we only had one type of reference and it was used for only one thing: calling overloaded operators. We only used templates for generic programming. We did not need RAII or smart pointers, because we knew to put try-catch blocks in our code. We did not use coroutines and closures, because a class with a thread and a queue could do the same. All the so-called "modern features" of C++ have not added any value to the language. They have only made it harder to use and more error prone. At the same time, C has focused on staying simplistic and clear. So today, I mostly recommend C over C++.

  4. I have programmed in 'C' for years, I have taken classes in C++ it is very powerful, almost TOO powerful, there are too many features that have "side effects" that might not be noticed by beginning coders. Very powerful, very steep learning curve.

  5. #include <gmpxx.h>
    #include <unistd.h>
    #include <numbers>
    #include <sstream>
    #include <fstream>
    #include <ctime>
    #include <algorithm>
    #include <thread>
    #include <chrono>
    #include <stdio.h>
    #include <iostream>
    #include <cmath>
    #include <string>
    #include <cstdlib>
    #include <iomanip>
    using namespace std;
    int main() {
    while (true) {
    std::cout << "33[2J33[1;1H";
    cout << "welcome to meth calculator it is a non scientific calculator that can only handle a number then a operator then a numbernnchoose a numbern";
    if (cin.fail()) {
    std::cout << "33[2J33[1;1H";
    cout << "please enter numbers and operators" << endl;
    std::this_thread::sleep_for(std::chrono::duration<double>(1.0));
    std::cout << "33[2J33[1;1H";
    cin.clear();
    cin.ignore(99999, 'n');
    continue;
    }
    double x;
    cin >> x;
    cout << "nchoose operator * + – ÷ ^ or say √ for square rootn";
    string operat;

    double y;
    cin.ignore(99999, 'n');
    getline(cin, operat);
    if (!(operat == "/") && !(operat == "÷") && !(operat == "*") && !(operat == "×") && !(operat == "-") && !(operat == "+") && !(operat == "√") && !(operat == "^") && !(cin.fail())) {
    std::cout << "33[2J33[1;1H";
    cout << "please enter a valid operator" << endl;
    std::this_thread::sleep_for(std::chrono::duration<double>(1.0));
    continue;
    }
    if (!(operat == "√")) {
    cout << "nchoose another numbern";
    cin >> y;
    }
    if (operat == "+") {
    std::cout << "33[2J33[1;1H";
    cout << x+y;
    cout << "nnrestart?nyesnnon";
    string restart;
    getline(cin, restart);
    cin.ignore(99999, 'n');
    if(restart == "yes") {
    continue;
    if (restart == "no") {
    return 0;
    }
    }
    }
    else if (operat == "-") {
    std::cout << "33[2J33[1;1H";
    cout << x-y;
    cout << "nnrestart?nyesnnon";
    string restart;
    cin.ignore(99999, 'n');
    getline(cin, restart);
    if(restart == "yes") {
    continue;
    if (restart == "no") {
    return 0;
    }
    }
    }
    else if ((operat == "*") || (operat == "×")) {
    std::cout << "33[2J33[1;1H";
    cout << x * y;
    cout << "nnrestart?nyesnnon";
    string restart;
    cin.ignore(99999, 'n');
    getline(cin, restart);
    if(restart == "yes") {
    continue;
    if (restart == "no") {
    return 0;
    }
    }
    }
    else if ((operat == "/") || (operat == "÷")) {
    std::cout << "33[2J33[1;1H";
    cout << x / y;
    cout << "nnrestart?nyesnnon";
    string restart;
    cin.ignore(99999, 'n');
    getline(cin, restart);
    if(restart == "yes") {
    continue;
    if (restart == "no") {
    return 0;
    }
    }
    }
    else if (operat == "^") {
    std::cout << "33[2J33[1;1H";
    cout << pow(x, y);
    cout << "nnrestart?nyesnnon";
    string restart;
    cin.ignore(99999, 'n');
    getline(cin, restart);
    if(restart == "yes") {
    continue;
    if (restart == "no") {
    return 0;
    }
    }
    }
    else if (operat == "√") {
    std::cout << "33[2J33[1;1H";
    cout << sqrt(x);
    cout << "nnrestart?nyesnnon";
    string restart;
    cin.ignore(99999, 'n');;
    getline(cin, restart);
    for (char &c : restart) {
    c = tolower(c);
    }
    if(restart == "yes" || restart == "yup" || restart == "yeah" || restart == "y" || restart == "hell yeah") {
    continue;
    if (restart == "no" || restart == "n" || restart == "nope" || restart == "nah" || restart == "hell no") {
    return 0;
    }
    else {
    cout << "choose yes or no";
    }
    }
    }
    }
    return 0;
    }

  6. at start, is it scarry that I saw the click bait banner ((void *())0)() and immeditely knew what it means? (though I DO have the defense of the 8 bit c coding for spectrum/Dragon32 that I've been playing with since this kind of thing is valid AND EXPECTED behavior there…)

  7. Oh my god, I'm at level 3, I really thought I was already a god of C++ programming, even so, I appreciate you emphasizing that it's not something that courses or documentation often show.

  8. You could also make a similar break down of levels of library development in C++. Level 1 is starting to write code outside of "main". Level 2 is splitting your own project into several files (pairs of header/source) that sort of feel like proto-libraries. Level 3 is starting to have separate self-contained libraries and projects that reuse and depend on them, but it's still largely for your own internal uses. Level 4 is making libraries that most people can use on most platforms, and having a substantial user-base. Level 5 is making libraries that everyone can use on every platform, e.g., standard library implementations. At level 5, when you have to support every compiler, every version of C++, every OS, and every architecture, and also be ready to be used and misused by every nincompoop programmer out there, expect that taking a level 4 library to level 5 will make it 10x bigger, and it will only grow your potential user-base by like 2% and not the kind of users you want.

  9. I've followed programming over a long period of time. I think C++ is going downhill from C, an answer to a question that nobody asked, forcing developers to do something in an awkward way that they could have already been doing.

  10. Real C++ god is the people who fix c++ shit from compiler, linker, binary level, they know c++ too well they stop being fancy on c++ and work they way to make good use of c++ (for example implementing own compilation steps, swapping standard library, etc)

    And i am not them😂

Leave a Reply

Your email address will not be published. Required fields are marked *

You might like

© 2026 Cantinho do Vídeo - WordPress Video Theme by WPEnjoy