https://issues.dlang.org/show_bug.cgi?id=7686

RazvanN <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |[email protected]
         Resolution|---                         |WORKSFORME

--- Comment #2 from RazvanN <[email protected]> ---
The code example in [1] now compiles successfully, as it should. The code
example in [2] fails the first 2 asserts. That is the correct behavior IMHO.
The first and second Pair instantiations match both overloads and the third one
matches a single template (the one that is not specialized on U). What else
could be the correct behavior?

For example, in [1], both:

static assert(__traits(compiles, foo!(Pair!(double, short), short)));
static assert(__traits(compiles, bar!(Pair!(double, short), short)));

and

static assert(__traits(compiles, foo!(Pair!(double, int), int)));
static assert(__traits(compiles, bar!(Pair!(double, int), int)));

compile successfully.

Closing as WORKSFORME. Please reopen if I am missing something. 

[1] https://issues.dlang.org/show_bug.cgi?id=7686#c0
[2] https://issues.dlang.org/show_bug.cgi?id=7686#c1

--

Reply via email to