class Dyn
Declaration
template <class DynC, class ConcreteT>
class Dyn { /* full declaration omitted */ };
Description
A type erasure of a type satisfying a concept, which can be used as a reference without heap allocation or templates. Returned from [`dyn`]($sus::boxed::dyn). This type is similar to `Box <DynC >` for purposes of type erasure but does not require heap allocation, and it converts directly to a reference to the erased type. Use [`dyn`]($sus::boxed::dyn) to convert to a `DynC` reference instead of constructing this type directly. See [`DynConcept`]($sus::boxed::DynConcept) for more on type erasure of concept-satisfying types.
Declared at: sus/boxed/dyn.h:331
Templates
- DynC
- ConcreteT
Method Overview
- public Dyn<DynC, ConcreteT>(ConcreteT & concrete)
- public Dyn<DynC, ConcreteT>(ConcreteT && concrete)
- public Dyn<DynC, ConcreteT>(const ConcreteT & concrete)
- public Dyn<DynC, ConcreteT>(Dyn<DynC, ConcreteT> &&)
- public const DynC & operator const type-parameter-0-0 &() const &
- public DynC & operator type-parameter-0-0 &() &
- public DynC & operator type-parameter-0-0 &() &&
- public DynC && operator type-parameter-0-0 &&() &&
Methods
¶Dyn<DynC, ConcreteT>(ConcreteT& concrete)
Dyn<DynC, ConcreteT>(ConcreteT& concrete)
Description
Construct a `Dyn <DynC , T>` from a mutable reference to `T`, which will vend a mutable reference `DynC & `. #[doc.overloads=mut]
Declared at: sus/boxed/dyn.h:346
Parameters
- ConcreteT& concrete
¶Dyn<DynC, ConcreteT>(ConcreteT&& concrete)
Dyn<DynC, ConcreteT>(ConcreteT&& concrete)
Description
#[doc.overloads=mut]
Declared at: sus/boxed/dyn.h:350
Parameters
- ConcreteT&& concrete
¶Dyn<DynC, ConcreteT>(const ConcreteT& concrete)
Dyn<DynC, ConcreteT>(const ConcreteT& concrete)
Description
Construct a `Dyn <const DynC, T>` from a reference to `T`, which will vend a const reference `const DynC & `. #[doc.overloads=const]
Declared at: sus/boxed/dyn.h:357
Parameters
- const ConcreteT& concrete
¶Dyn<DynC, ConcreteT>(Dyn<DynC, ConcreteT>&&)
Dyn<DynC, ConcreteT>(Dyn<DynC, ConcreteT>&&)
Description
`Dyn` can not be moved. `Dyn` only exists as a temporary to convert a concrete reference to a concept type to into a type-erased reference.
Declared at: sus/boxed/dyn.h:387
Parameters
- Dyn<DynC, ConcreteT>&&
¶const DynC& operator const type - parameter - 0 -
0 &() const&
const DynC& operator const type - parameter - 0 -
0 &() const&
Description
Converts the reference to `ConcreteT` into a `DynC` reference.
Declared at: sus/boxed/dyn.h:366
¶DynC& operator type - parameter - 0 - 0 &() &
DynC& operator type - parameter - 0 - 0 &() &
Declared at: sus/boxed/dyn.h:367
¶DynC& operator type - parameter - 0 - 0 &() &&
DynC& operator type - parameter - 0 - 0 &() &&
Declared at: sus/boxed/dyn.h:372
¶DynC&& operator type - parameter - 0 - 0 &&() &&
DynC&& operator type - parameter - 0 - 0 &&() &&
Declared at: sus/boxed/dyn.h:377