Consider a C++ template class (mixin class) that inherits from the same class declared on the template, i.e.,
template <class Model>
class Mixin : public Model {
...
}
The motivation is to reuse this Mixin to extend methods for different Model classes. For example, for a model class ModelOne,
class ModelOne {
public:
ModelOne (int a, int b) { ... }
}
is 'dressed' up by the Mixin class and further extended as
class Realization : public Mixin<ModelOne> {
...
}
How do I explicitly invoke - in Realization class - the constructor of ModelOne class? Different model class may have different constructor signature.