class template conflict
Steven Schveighoffer
schveiguy at gmail.com
Mon Dec 24 01:51:49 UTC 2018
On 12/23/18 7:09 AM, Michelle Long wrote:
> class X
> {
>
> }
>
> class X(int N) : X
> {
>
> }
>
> Is there any real reason we can't do this?
I think it has less to do with class names and more to do with symbol
overloading.
The only place I think templates are allowed to overload names with
non-templates is functions, which actually was not always the case (you
used to have to only have templates or non templates as function overloads).
>
> It is very nice to be able to treat X like the base and X!n as a derived
> class.
The problem I see is:
template foo(alias A) { ... }
foo!X
Did you mean class X or template X?
For functions, this is OK, because it's one overload set.
-Steve
More information about the Digitalmars-d-learn
mailing list