cxx
cxx copied to clipboard
#[cxx::bridge] doesn't apply #[cfg(not(feature))]
It looks like #[cfg(not(feature))]
is ignored by #[cxx::bridge]
, so the marked field would always exist:
mod ffi {
#[repr(u32)]
enum Variant {
#[cfg(not(feature = "v2"))]
A,
B,
}
}
See this demo repo for a reproducible example.
#[cfg(not(feature))]
is useful when a newer version of a C++ library dropped something, while we would like to support both new and old versions with Cargo feature flags.