cgen generates C interfaces from C++ headers