Thread overview
[Issue 7680] template specialization bug
Dec 17, 2022
Iain Buclaw
Feb 28, 2023
Nick Treleaven
Feb 28, 2023
Nick Treleaven
June 09, 2015
https://issues.dlang.org/show_bug.cgi?id=7680

Andrei Alexandrescu <andrei@erdani.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|unspecified                 |D2

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=7680

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P2                          |P3

--
February 28, 2023
https://issues.dlang.org/show_bug.cgi?id=7680

Nick Treleaven <nick@geany.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nick@geany.org

--- Comment #1 from Nick Treleaven <nick@geany.org> ---
The error is:

> tempspecconst.d(14): Error: template `tempspecconst.Foo26` matches more than one template declaration:

> I'm not sure whether Bar!int should match Bar!(const T) in the first place.

Well this fails so I'd say no:

    Bar!int b;
    Bar!(const int) c = b;

--
February 28, 2023
https://issues.dlang.org/show_bug.cgi?id=7680

Nick Treleaven <nick@geany.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |accepts-invalid

--- Comment #2 from Nick Treleaven <nick@geany.org> ---
With only the top overload present, the code compiles even though the argument is `Bar!int`, not `Bar!(const int)`:

> template Foo26(T:Bar!(const T))

--