Comment by randomtoast
19 days ago
I’ve seen this play out a lot. People say they “write games in C” and then quietly rebuild half of C++ anyway with vtables in structs or giant switch statements, just without the compiler helping. That’s fine if it makes you happier, but it’s not obviously simpler or safer. Also, C++ compile times are mostly a self-inflicted wound via templates and metaprogramming, not some inherent tax you pay for having virtual functions.
A switch statement is how you do ad-hoc polymorphism in C -- i dont thinks an own against C developers to point that out. If they wanted to adopt the C++ style that immediately requires the entire machinery of OOP, which is an incredibly heavy price to avoid a few switch statements in the tiny number of places ad-hoc poly is actually needed
You don't usually do C++ subsets if you want the full shebang.
I have a "mini-std" headerfile that's about 500 LoC implementing lightweight variants of std::vector, std::function, a stack-local std::function (unsafe as hell and useful as hell to avoid allocations), a shared-ptr, qsort and some other nifty stuff.
That does a lot of things, but even then I use other patterns that brings a lot of bang for the buck without having to go full C (hint: the stack-local function equivalent gets a lot of mileage).
I think it is simpler and "the compiler not helping" == "things are more transparent".
There are various things one does not have to worry about when using C instead of C++. But the brain needs some time to get used to it.
I think I get what you're trying to say, but you may have picked a bad example, here:
Yes, but this is more a theoretical problems while references are common in C++.
This reads like an LLM generated response that simply restates the comment it's replying to
Heck the LLM accusations get a bit out of hand lately here on HN. I could delve into it now ... but I want to safe our time.
> but it’s not obviously simpler or safer
On top of likely having worse performance.
It's important that you do these things yourself before you utilise the compiler to do them for you, so you have real understanding.