template<class StrictType>
Rodin::Variational::LazyEvaluator class

Represents the lazy evaluation of a mesh function.

The main objective of this class is to wrap the reference of a data-full object into a light object which permits evaluation. This way one is able to call the copy() method without actually copying the underlying data.

Base classes

template<class Derived>
class FunctionBase<LazyEvaluator<StrictType>>
Base class for function objects which can be evaluated over a mesh.

Derived classes

template<class FES, class Derived>
class GridFunctionBase
Base class for grid function objects.
template<class FES, class Derived>
class GridFunctionBase
Base class for grid function objects.

Constructors, destructors, conversion operators

LazyEvaluator(StrictType&&) deleted
R-Values are not allowed.
LazyEvaluator(const StrictType& ref) deleted
Prevent implicit copies.
LazyEvaluator(std::reference_wrapper<const StrictType> ref) explicit constexpr
Constructs the LazyEvaluator object from a constant reference the data-full object.
LazyEvaluator(const LazyEvaluator& other) constexpr
Copy constructor.
LazyEvaluator(LazyEvaluator&& other) constexpr
Move constructor.

Public functions

auto copy() const -> LazyEvaluator* final noexcept
Copies the object and returns a non-owning pointer to the copied object.

Function documentation

template<class StrictType>
LazyEvaluator* Rodin::Variational::LazyEvaluator<StrictType>::copy() const final noexcept

Copies the object and returns a non-owning pointer to the copied object.

Returns Non-owning pointer to the copied object.