58 std::unique_ptr<PolymorphicObject> create_default_impl(
59 std::shared_ptr<const Executor> exec)
const override
61 return std::unique_ptr<ConcreteObject>{
62 new ConcreteObject(exec, self()->get_communicator())};
65 PolymorphicObject* copy_from_impl(
const PolymorphicObject* other)
override
71 PolymorphicObject* copy_from_impl(
72 std::unique_ptr<PolymorphicObject> other)
override
78 PolymorphicObject* move_from_impl(PolymorphicObject* other)
override
84 PolymorphicObject* move_from_impl(
85 std::unique_ptr<PolymorphicObject> other)
override
91 PolymorphicObject* clear_impl()
override
94 ConcreteObject{self()->get_executor(), self()->get_communicator()};
99 GKO_ENABLE_SELF(ConcreteObject);
std::decay_t< T > * as(U *obj)
Performs polymorphic type conversion.
Definition utils_helper.hpp:307