~/langs $ cmake .. && make // -Wall -Wextra -Werror, pray
BMODERN C++
the ancient dragon · forty years of power tools, chainsaw included
[01] ORIGIN
Bjarne Stroustrup wanted Simula's abstractions at C's speed. Forty years later, civilization runs on the result.
"C with Classes" appeared in 1979 and became C++ in 1983; since C++11 the language reinvents itself every three years, and the modern dialect (17, 20, 23) is genuinely a different and better language than the one your professor traumatized you with. The dragon's true form is its hoard: every operating system, browser, game engine, database and trading floor has C++ in the load-bearing walls. You don't have to love it. You do have to respect it, and anyone who calls for rewriting it all has never estimated that project.
| creator | Bjarne Stroustrup, Bell Labs, 1979; ISO committee since 1998 |
| paradigm | multi-paradigm: pick any three, your coworker picked a different three |
| memory | manual with RAII; safe if you're disciplined, and you're not |
| deps | no blessed registry, which is accidentally correct; vcpkg/conan exist; CMake is the real boss fight |
| famous users | Windows, Chrome, Unreal, LLVM, every HFT shop, the works |
| my use | reading other people's engines, respectfully |
[02] WHAT IT GETS RIGHT
Templates monomorphize, constexpr computes before the program exists, and the abstraction bill is paid at compile time. When C++ is fast, nothing on the tier list beats it, and the people who need that last 2% know exactly where to find it.
Deterministic destruction tied to scope: files close, locks release, memory frees, on every exit path including the ones you forgot. The one mechanic every later language copied (Rust's Drop, Odin's defer, C#'s using), and the original still does it best.
Run real programs while compiling the program: lookup tables, parsers, whole data structures baked into the binary. Modern constexpr is a second language that costs literally nothing at runtime.
Whatever you need, a battle-hardened C++ library exists, has existed for fifteen years, and survived workloads that would vaporize your weekend project. The dragon's hoard is real and it is glorious.
Code from 1995 still compiles in 2026. For the people who own forty-year codebases, this is the feature that matters more than all the others combined.
ASan, UBSan, TSan, MSan, plus the best optimizing compilers and profilers ever built. The modern C++ workflow with sanitizers in CI catches most of what the language lets through, which is an admission and an achievement at once.
[03] THE CODE
constexpr auto make_crc_table() { std::array<uint32_t, 256> t{}; for (uint32_t i = 0; i < 256; ++i) { uint32_t c = i; for (int k = 0; k < 8; ++k) c = (c >> 1) ^ ((c & 1) ? 0xEDB88320u : 0u); t[i] = c; } return t; // computed entirely at compile time } void archive(const std::filesystem::path& src) { std::ifstream in{src}; // RAII: closed on every path auto buf = std::make_unique<char[]>(1 << 16); // no delete, no leak, no finally. scope is the cleanup. }
The good parts on display: the CRC table costs zero runtime, the file closes itself. The catch is everything off-screen: one signed overflow anywhere in this translation unit and the optimizer is legally allowed to do anything it wants, including nothing.
[04] THE BAD
// status effects
- UB BREATHaround two hundred documented kinds of undefined behavior, each one a license for the optimizer to eat your program with no save point. The dragon doesn't even notice it did it.
- DIALECT FRAGMENTATIONexceptions or not, templates or not, which third of the language is banned here? Every codebase is its own dialect; hire two C++ devs, get three opinions.
- COMMITTEE CREEPfeatures land every three years and nothing is ever removed. The language grows; it never sheds. Knowing C++ is a career, not a skill.
- CMAKEnot a build system, a punishment. The strongest fighter on the roster spends half its turns fighting its own equipment, and the equipment is winning.
- HEADERSthe same text reparsed a thousand times because 1972 said so. Modules shipped in C++20; ask your build system how that's going.
[05] VERDICT
B tier. Maximum power, maximum baggage; the dragon is owed respect, not love.
Use it when you're joining the hoard: engines, HFT, an existing million-line codebase where the libraries and the institutional knowledge already live. Starting something new and small? Odin gives you the speed without the forty years of sediment, and Rust gives you the safety the dragon never will. Knowing how to read C++ remains mandatory either way: the world is written in it.
// b stands for "battle-tested". also for "bring sanitizers".