pub unsafe trait SharedPtrTarget { }
Expand description
Trait bound for types which may be used as the T
inside of a
SharedPtr<T>
in generic code.
This trait has no publicly callable or implementable methods. Implementing it outside of the CXX codebase is not supported.
§Example
A bound T: SharedPtrTarget
may be necessary when manipulating
SharedPtr
in generic code.
use cxx::memory::{SharedPtr, SharedPtrTarget};
use std::fmt::Display;
pub fn take_generic_ptr<T>(ptr: SharedPtr<T>)
where
T: SharedPtrTarget + Display,
{
println!("the shared_ptr points to: {}", *ptr);
}
Writing the same generic function without a SharedPtrTarget
trait bound
would not compile.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.