I frankly don't understand why projects [*] are still written in pure C. With the exception of a few edge cases, C is pretty much a subset of C++, so you can easily write code that's 100% C, except for when useful data structures from the STL are required. In this specific case, what is the disadvantage of writing C code that pulls in std::unordered_map when a hash table is needed, but otherwise does not use any other C++ language features?
[*] aside from those targeting niche, embedded systems for which C++ is unavailable
[*] aside from those targeting niche, embedded systems for which C++ is unavailable