Ginkgo  Generated from tags/v1.0.0^0 branch based on master. Ginkgo version 1.0.0
A numerical linear algebra library targeting many-core architectures
Public Member Functions | List of all members
gko::EnableAbstractPolymorphicObject< AbstactObject, PolymorphicBase > Class Template Reference

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>

Collaboration diagram for gko::EnableAbstractPolymorphicObject< AbstactObject, PolymorphicBase >:
[legend]

Public Member Functions

std::unique_ptr< AbstactObject > create_default (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< AbstactObject > create_default () const
 
std::unique_ptr< AbstactObject > clone (std::shared_ptr< const Executor > exec) const
 
std::unique_ptr< AbstactObject > clone () const
 
AbstactObject * copy_from (const PolymorphicObject *other)
 
AbstactObject * copy_from (std::unique_ptr< PolymorphicObject > other)
 
AbstactObject * clear ()
 

Detailed Description

template<typename AbstactObject, typename PolymorphicBase = PolymorphicObject>
class gko::EnableAbstractPolymorphicObject< AbstactObject, PolymorphicBase >

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 toAbstractObject` wherever it makes sense. As opposed to EnablePolymorphicObject, it does not implement PolymorphicObject's virtual methods.

Template Parameters
AbstractObjectthe abstract class which is being implemented [CRTP parameter]
PolymorphicBaseparent of AbstractObject in the polymorphic hierarchy, has to be a subclass of polymorphic object
See also
EnablePolymorphicObject for creating a concrete subclass of PolymorphicObject.

The documentation for this class was generated from the following file: