I have a relatively complex template with a lot of arguments (most of them with default values). For example:
template <typename I,
typename S = BasicS<I>,
typename C = BasicC<I>,
typename E = BasicE<I> >
class Foo ...
Unfortunately whatever order of the arguments I choose there are always cases where you may want to change only the last one.
How I could create more prototypes for the same template, say
template <typename I,
typename E>
class Foo1 : Foo<I, BasicS<I>, BasicC<I>, E >
{
... redefine the constructors
};
but without inheritance to avoid the need of redefining the constructors