On Saturday, 18 June 2016 at 17:48:47 UTC, Joerg Joergonson wrote:
class foo(T) if (is(T : subfoo)) X;
FYI this can also be done in the template parameter list:
class foo(T : subfoo){}
This is solved through simple inheritance constraints and
aliasing with qualification.
class X;
class subfoo;
class subbaz : subfoo;
class foo(T) if (is(T : subfoo)) X;
class baz(T) if (is(T : subbaz)) foo!T;
then when we need foo with "default",
alias foo = qualified.foo!subfoo;
Without
On Saturday, 18 June 2016 at 12:15:56 UTC, Klaus Kalsesh wrote:
On Saturday, 18 June 2016 at 02:11:23 UTC, Joerg Joergonson
wrote:
I have something like
class X;
class subfoo : X;
class subbaz : X;
class foo : X
{
subfoo bar;
}
class baz : X;
which I have modified so that
class subbaz
On Saturday, 18 June 2016 at 02:11:23 UTC, Joerg Joergonson wrote:
I have something like
class X;
class subfoo : X;
class subbaz : X;
class foo : X
{
subfoo bar;
}
class baz : X;
which I have modified so that
class subbaz : subfoo;
class baz : foo;
(essentially baz is now a derivation
I have something like
class X;
class subfoo : X;
class subbaz : X;
class foo : X
{
subfoo bar;
}
class baz : X;
which I have modified so that
class subbaz : subfoo;
class baz : foo;
(essentially baz is now a derivation of foo while before it was
of X)
the problem is that subbaz uses