Class Scine::Utils::CloneInterface< Abstract< Derived >, Bases…>¶
-
template<class
Derived
, class ...Bases
>
classCloneInterface
<Abstract<Derived>, Bases...> : public Bases¶ Specialization for abstract classes.
This is necessary, because otherwise the inheritance pattern would not work. It would not be necessary if the inheritance would just have 2 level: interface class and derived class. From the moment that there are also abstract classes between interface and derived class, as the Core::Calculator in the Sparrow module is the most notorious example, the cloneImpl() method must be virtualized in the abstract class.