|
> If your code is slower than C, someone will rewrite it in C. When used correctly, C++ is not slower than C. Sometimes faster, a classic example is C qsort versus std::sort. > If your library is written in C it means it can be used on any OS, console or mobile device and even on the web. C++ is good in that regard. I know only 1 mainstream platform where C++ adds significant friction compared to C, that’s iOS, because their objective C is a superset of C. The rest of them (Windows, Linux including embedded, game consoles, android) support C++ just fine. > Not everyone wants to use C++ (some prefer C). Most people are OK with C++, especially in the context of game development. > to the point where you are pretty much left with C No, not with C. Namespaces and scoped enums are awesome. Another thing, inside the implementation of the library, you can use whatever C++ language features you please, even the features that would be inappropriate when exposed at the API surface of the library. For example, MS implemented parts of their C runtime library with C++ classes, RAII, lambdas and templates, eliminating duplicated code for char/wchar_t routines. Obviously, you don’t need C++ to consume that library, just C is enough, but it’s implemented in modern C++. On my system, that source is in "C:\Program Files (x86)\Windows Kits\10\Source\10.0.18362.0\ucrt\stdio\output.cpp". |
Apple’s compiler supports overlaying Objective-C features on top of C++ instead of C; it’s called Objective-C++.