Presumably, C interop is the cause of C++'s problems because it was the impetus for carrying forward all of C's warts into C++. And it is the solution because it allows you to put C++ code behind a C-compatible interface so that you can use it from a language that isn't C++.