Rodin::Copyable class

Abstract base class for objects that can be copied.

This class defines an interface for polymorphic copying of objects. Classes that inherit from this interface must implement the copy() method to provide deep copying functionality.

Derived classes

template<class LinearSystem>
class SolverBase
Abstract base class for linear system solvers.
template<class LinearSystem>
class SolverBase
Abstract base class for linear system solvers.
template<class LinearSystem>
class SolverBase
Abstract base class for linear system solvers.
class Base
Base class for all objects in Rodin's FormLanguage system.
class IndexGeneratorBase
Abstract base class for index generators.
class PolytopeTransformation
Abstract base class for polytope geometric transformations.
class QuadratureFormulaBase
Abstract base class for quadrature formulas.
template<class LinearSystem>
class SolverBase
Abstract base class for linear system solvers.

Constructors, destructors, conversion operators

~Copyable() defaulted virtual
Virtual destructor for proper cleanup of derived classes.

Public functions

auto copy() const -> Copyable* pure virtual noexcept
Creates a polymorphic copy of this object.

Function documentation

Copyable* Rodin::Copyable::copy() const pure virtual noexcept

Creates a polymorphic copy of this object.

Returns Pointer to a new instance that is a copy of this object. The caller is responsible for memory management.