Rust can call directly into a C++ library as long as it uses the C ABI: there aren&#x27;t bindings to (a compiler-specific implementation of) the C++ type system. Go is just the same. This isn&#x27;t really a language restriction, more a result of how rich the C type system is and how compiler-specific it is. The only languages that have direct C++ interop are those that directly use a C++ compiler (like Objective-C++).<p>It appears that GoQt has this giant pile of wrappers around C++ types, casting pointers back and forth:<p><a href="https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;visualfc&#x2F;goqt&#x2F;master&#x2F;qtdrv&#x2F;cdrv.cpp" rel="nofollow">https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;visualfc&#x2F;goqt&#x2F;master&#x2F;qtdrv...</a><p>I would have expected this to require an `extern &quot;C&quot;` declaration. I&#x27;m sort of surprised it doesn&#x27;t, but maybe the common C++ ABIs match the C ones if only C types are passed to and from the function?<p>(Also, is this file auto-generated?)