upvote
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
reply
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).

reply
This reads like an LLM generated response that simply restates the comment it's replying to
reply
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.
reply
I think it is simpler and "the compiler not helping" == "things are more transparent".

  int a = 3;
  foo(a);
  // What value has a ?

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.
reply
I think I get what you're trying to say, but you may have picked a bad example, here:

  #define foo(a) a = 12
reply
Yes, but this is more a theoretical problems while references are common in C++.
reply
It's important that you do these things yourself before you utilise the compiler to do them for you, so you have real understanding.
reply
> but it’s not obviously simpler or safer

On top of likely having worse performance.

reply
deleted
reply