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.