github dtolnay/cxx 1.0.0

latest releases: 1.0.121, 1.0.120, 1.0.119...
3 years ago

Breaking changes

  • extern "C" extern block in the FFI module is no longer accepted, write extern "C++" instead
  • extern "C++" block must be written unsafe extern "C++" if it contains at least one safe-to-call function
  • rust::Slice<T> in C++ has been renamed to rust::Slice<const T>; support for &mut [T] post-1.0 will use the rust::Slice<T> name
  • &mut T where T is an opaque C++ type is no longer ever exposed to Rust, only Pin<&mut T>
  • Related to the previous: UniquePtr binding no longer implements DerefMut for opaque C++ types
  • If a function's implementation is unsafe in Rust, extern "Rust" block will enforce that it's listed as unsafe fn in the extern block too
  • Opaque Rust types are required to be Unpin in addition to Sized
  • Opaque Rust types are required to be local to the current crate (for now; this may soon be lifted again)
  • Handwritten Unpin impl for opaque C++ types are ruled out
  • Minimum supported rustc version is raised from 1.43 to 1.48

Don't miss a new cxx release

NewReleases is sending notifications on new releases.