class template conflict
Michelle Long
HappyDance321 at gmail.com
Sun Dec 23 12:09:31 UTC 2018
class X
{
}
class X(int N) : X
{
}
Is there any real reason we can't do this?
It is very nice to be able to treat X like the base and X!n as a
derived class.
Sure we can do
class X(int N) : X!0
{
static if(N == 0)
{
}
}
but this is very ugly, in my code I always have to use X!0 as the
basis!
I do not think there is any harm to allow this since the
templated class always has to specify N. It is not like we can do
class X(int N = 0) : X
{
static if(N == 0)
{
}
}
Actually we can, so... I don't see the point in not allowing the
first case, they are logically equivalent. That static if is just
ugly and it is defining the base class inside the derived class
which seems unnatural.
More information about the Digitalmars-d-learn
mailing list