October 04, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4986

           Summary: IFTI fails on partial matching with value parameters
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: simen.kjaras@gmail.com


--- Comment #0 from Simen Kjaeraas <simen.kjaras@gmail.com> 2010-10-04 00:42:50 PDT ---
The following code fails to deduce the value of m2 in bar:

struct Foo( int n, int m ) {
    /// Bugged:
    void bar( int m2 )( Foo!( m2, n ) arg ) {}
    // Workaround:
    void baz( int n2, int m2 )( Foo!( n2, m2 ) arg ) if ( n == n2 ) {}
}

void bug( )( ) {
    Foo!(3,2) f;
    Foo!(3,3) g;
    f.baz( g ); // Works.
    f.bar( g ); // Fails.
}

foo.d(14): Error: template foo.Foo!(3,2).Foo.bar(int m2) does not match any
func
tion template declaration
foo.d(14): Error: template foo.Foo!(3,2).Foo.bar(int m2) cannot deduce template
function from argument types !()(Foo!(3,3))


Note also that this works for type parameters:

struct Foo( T, U ) {
    void bar( V )( Foo!( T, V ) arg ) {}
}

void bug( )( ) {
    Foo!(int, float) f;
    Foo!(int, string) g;
    f.bar( g );
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 31, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4986


Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


--- Comment #1 from Kenji Hara <k.hara.pg@gmail.com> 2012-05-30 20:45:57 PDT ---
Works in 2.060head.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------