C++ is perfectly able to interface and interact with C libraries. Also it doesn't necessarily produce larger or slower binaries. Virtually everything is optional. The only hard part about C++ is to identify the good parts (those that are useful for your project) and to not use the other parts. Then you can do "C with templates" or "C with simple classes that have proper RAII" but you don't need exceptions. The argument that I keep hearing is kind of the "slippery slope" that if one allows a little bit of C++ the rest will come creeping and with it will come all complexity. This shows that project management is weak and tries to deal with this weakness by selecting tools with limited capability. A method that seems to work reasonably well in cases like the Linux kernel.