Sorry to give you two "no" answers in a single night, but "No", C++ exceptions (or classes for that matter) have no standard binary layout. Attempting to use C++ classes/exceptions between two differing compilers breaks the One Definition Rule.
You can work around this by only allowing a C API between the object files (because C has a standard ABI - Application Binary Interface), or you can compile all your code with one compiler or the other. I'm not sure if the last bit is possible with NVCC, however.
In response to question edit: everything else seems to work (C++ objects, operators): There are lots of things that seem to work in the vast majority of cases. That does not mean they do not invoke undefined behavior.