Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers
** You may need to replace EmplaceUnpinned
with Emplace
.
Full Changelog: https://github.com/google/autocxx/compare/v0.25.0...v0.26.0
autocxx_gen
to create cxx.h
by @nak3 in https://github.com/google/autocxx/pull/1253
--generate-exact
by @nak3 in https://github.com/google/autocxx/pull/1247
&mut
return but no &mut
params by @adetaylor in https://github.com/google/autocxx/pull/1254
outdir
if it doesn't exist by @Jake-Shadle in https://github.com/google/autocxx/pull/1225
gen-rs-include
accurate by @nak3 in https://github.com/google/autocxx/pull/1234
AUTOCXX_RS_JSON_ARCHIVE
by @nak3 in https://github.com/google/autocxx/pull/1232
is_subclass
in examples by @nak3 in https://github.com/google/autocxx/pull/1245
remove_dir_all
security alert by @adetaylor in https://github.com/google/autocxx/pull/1259
Full Changelog: https://github.com/google/autocxx/compare/v0.24.0...v0.25.0
pod
extern_cpp_types
by @adetaylor in https://github.com/google/autocxx/pull/1193
extern_cpp_types
by @adetaylor in https://github.com/google/autocxx/pull/1221
u16
representation. by @adetaylor in https://github.com/google/autocxx/pull/1223
Full Changelog: https://github.com/google/autocxx/compare/v0.23.1...v0.24.0
Full Changelog: https://github.com/google/autocxx/compare/v0.23.0...v0.23.1
The major change here is a lot of rework of the safety!(unsafe_references_wrapped)
mode, based on the researches done here. This is a compatibility break, but only if you're using that mode.
There are also significant bug fixes to extern_rust_type!()
as noted below.
extern_cpp_type!
with a different name by @bsilver8192 in https://github.com/google/autocxx/pull/1150 (thanks!)extern_rust_type
)rustc
by @adetaylor in https://github.com/google/autocxx/pull/1172
=default
functions by @adetaylor in https://github.com/google/autocxx/pull/1180
Full Changelog: https://github.com/google/autocxx/compare/v0.22.4...v0.23.0
impl UniquePtr
for abstract types too by @bsilver8192 in https://github.com/google/autocxx/pull/1137
Full Changelog: https://github.com/google/autocxx/compare/v0.22.3...v0.22.4
The change here is an experimental new mode to use reference wrappers for C++ code, as explained here and in this example.
Full Changelog: https://github.com/google/autocxx/compare/v0.22.2...v0.22.3
Full Changelog: https://github.com/google/autocxx/compare/v0.22.1...v0.22.2
One new feature:
A roll of the minimum cxx version to work around a new clippy warning:
Lots of bug fixes:
_bindgen_ty
by @adetaylor in https://github.com/google/autocxx/pull/1091
safety!(unsafe)
by @bsilver8192 in https://github.com/google/autocxx/pull/1111
There is currently a known soundness problem, as noted in #1006.
Full Changelog: https://github.com/google/autocxx/compare/v0.22.0...v0.22.1
Major changes to how the command line generation tool autocxx_gen
works. If you're just using cargo
you probably don't need to worry about this, but if you're using other build systems you'll almost certainly need to make changes.
autocxx_gen
invocation by @adetaylor in https://github.com/google/autocxx/pull/1061
There's also a compatibility change in that make_unique
methods have been removed. They've been deprecated for a few releases now, so this shouldn't come as a surprise. Append .within_unique_ptr()
everywhere you would have used it.
This release also upgrades some of our dependencies:
But mostly there are lots of bug fixes for cases where autocxx previously failed.
&UniquePtr<T>
by @adetaylor in https://github.com/google/autocxx/pull/1085
instantiable!
, for niche cases)std::vector<char>
by @adetaylor in https://github.com/google/autocxx/pull/1060
Various other bug fixes or minor changes:
Full Changelog: https://github.com/google/autocxx/compare/v0.21.2...v0.22.0