Enum cpp_demangle::ast::CtorDtorName
source · pub enum CtorDtorName {
CompleteConstructor(Option<TypeHandle>),
BaseConstructor(Option<TypeHandle>),
CompleteAllocatingConstructor(Option<TypeHandle>),
MaybeInChargeConstructor(Option<TypeHandle>),
DeletingDestructor,
CompleteDestructor,
BaseDestructor,
MaybeInChargeDestructor,
}
Expand description
The <ctor-dtor-name>
production.
<ctor-dtor-name> ::= C1 # complete object constructor
::= C2 # base object constructor
::= C3 # complete object allocating constructor
::= D0 # deleting destructor
::= D1 # complete object destructor
::= D2 # base object destructor
GCC also emits a C4 constructor under some conditions when building an optimized binary. GCC’s source says:
/* This is the old-style "[unified]" constructor.
In some cases, we may emit this function and call
it from the clones in order to share code and save space. */
Based on the GCC source we’ll call this the “maybe in-charge constructor”. Similarly, there is a D4 destructor, the “maybe in-charge destructor”.
Variants§
CompleteConstructor(Option<TypeHandle>)
“C1”, the “complete object constructor”
BaseConstructor(Option<TypeHandle>)
“C2”, the “base object constructor”
CompleteAllocatingConstructor(Option<TypeHandle>)
“C3”, the “complete object allocating constructor”
MaybeInChargeConstructor(Option<TypeHandle>)
“C4”, the “maybe in-charge constructor”
DeletingDestructor
“D0”, the “deleting destructor”
CompleteDestructor
“D1”, the “complete object destructor”
BaseDestructor
“D2”, the “base object destructor”
MaybeInChargeDestructor
“D4”, the “maybe in-charge destructor”
Trait Implementations§
source§impl Clone for CtorDtorName
impl Clone for CtorDtorName
source§fn clone(&self) -> CtorDtorName
fn clone(&self) -> CtorDtorName
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CtorDtorName
impl Debug for CtorDtorName
source§impl PartialEq for CtorDtorName
impl PartialEq for CtorDtorName
source§fn eq(&self, other: &CtorDtorName) -> bool
fn eq(&self, other: &CtorDtorName) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for CtorDtorName
impl StructuralPartialEq for CtorDtorName
Auto Trait Implementations§
impl Freeze for CtorDtorName
impl RefUnwindSafe for CtorDtorName
impl Send for CtorDtorName
impl Sync for CtorDtorName
impl Unpin for CtorDtorName
impl UnwindSafe for CtorDtorName
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)