Most of the answers to this question seem to make the argument that you could not automatically generate safe Rust wrappers for an existing C library because it would be impossible to automatically know the safety requirements for a C API.
That's also true, in general, for C++, but CXX is nevertheless attempting to solve that problem.
CXX requires you to give some extra information when declaring the bridge. Presumably that can allow things to be less automatic.
I'm guessing that the reality is that if your C++ code is relatively idiomatic then CXX will work with it, but stray too far from idiomatic C++ - i.e. towards a C-style interface and CXX won't be able to do such a good job.
But it would be good to hear something more definitive.