At the moment, I need the language to help me with polymorphic things.
Could you give examples of what you'd like to achieve?
DiTBho already mentioned a practical one in #2: a B*tree for three different types of keys: unsigned 32-bit integers, strings, and points (or axis-aligned rectangles). Each tree only has one type of key, of course; so basically three "different" B*trees needed.
There's a number of ways to do this in C, just like there's a number of ways to do it in C++.
In C, the typical approach would be to use pointers to "keys". The keys could be objects defined as structures holding either directly the information needed for the key, or a pointer to it, and then one or more functions acting on the key.
This might look like a pretty "manual" way of doing OO, but in practice, when done properly, it's not that much different nor even that many more lines of code. I see practically no difference in the number of lines of code needed for either approach. The C one even possibly takes fewer. The assumption that using C++ would take "orders of magnitude" less effort is not just exaggerated, it's not even backed by reality.
Of course, one benefit of C++ is that it will do more typechecking - sure polymorphic stuff in C is not without risks - and will be potentially more efficient at run time, but even that remains to be checked in practice.
Another approach is to use the preprocessor. Oh yeah, that's so bad, I know.
One thing that would make it easier IMO with the preprocessor is if we could write multi-line macros without having to put a backslash at the end of every line. That's pretty annoying and looks terrible. A simple addition to the preprocessor would allow this. (That could be an opening "[[" and closing "]]", which is used in other languages for writing multi-line strings, for instance...)
But yeah, better generic programming is a good feature. I'm not sure C++ templates and/or a mess of inherited objects is really what we could call good generic programming though. But that's of course a discussion that could last for years.