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

Methods

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)

Description

#[doc.overloads=mut]

Declared at: sus/boxed/dyn.h:350

Parameters

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>&&)

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&

Description

Converts the reference to `ConcreteT` into a `DynC` reference.

Declared at: sus/boxed/dyn.h:366

DynC& operator type - parameter - 0 - 0 &() &

Declared at: sus/boxed/dyn.h:367

DynC& operator type - parameter - 0 - 0 &() &&

Declared at: sus/boxed/dyn.h:372

DynC&& operator type - parameter - 0 - 0 &&() &&

Declared at: sus/boxed/dyn.h:377