Ginkgo
Generated from pipelines/1554403166 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
|
This mixin inherits from (a subclass of) PolymorphicObject and provides a base implementation of a new abstract object. More...
#include <ginkgo/core/base/polymorphic_object.hpp>
Inherits PolymorphicBase.
Public Member Functions | |
std::unique_ptr< AbstractObject > | create_default (std::shared_ptr< const Executor > exec) const |
std::unique_ptr< AbstractObject > | create_default () const |
std::unique_ptr< AbstractObject > | clone (std::shared_ptr< const Executor > exec) const |
std::unique_ptr< AbstractObject > | clone () const |
AbstractObject * | copy_from (const PolymorphicObject *other) |
template<typename Derived > | |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * | copy_from (std::unique_ptr< Derived > &&other) |
template<typename Derived > | |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, AbstractObject > * | copy_from (const std::unique_ptr< Derived > &other) |
AbstractObject * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
AbstractObject * | move_from (ptr_param< PolymorphicObject > other) |
AbstractObject * | clear () |
This mixin inherits from (a subclass of) PolymorphicObject and provides a base implementation of a new abstract object.
It uses method hiding to update the parameter and return types from PolymorphicObject to
AbstractObject` wherever it makes sense. As opposed to EnablePolymorphicObject, it does not implement PolymorphicObject's virtual methods.
AbstractObject | the abstract class which is being implemented [CRTP parameter] |
PolymorphicBase | parent of AbstractObject in the polymorphic hierarchy, has to be a subclass of polymorphic object |