Bugs with overloaded variadic functions
    BCS 
    ao at pathlink.com
       
    Mon Jan  8 17:19:08 PST 2007
    
    
  
Two odd bugs
import std.stdio;
class Foo
{
   this(int i, float f){writef(" Foo(i,f) ");}
   this(float f)   {writef(" Foo(f) ");}
}
void fn(int i, Foo f...){writef(" fn(i,Foo...) ");}
void fn(Foo f...)       {writef(" fn(Foo...) ");}
void main()
{
   int i = 0;
   float f = 0;
//matches:
//   Foo(i,f) fn(i,Foo...)
   fn(i,i,f);   // BUG fails with "matches both" error
//matches:
//   Foo(f) fn(i,Foo...)
//   Foo(i,f) fn(Foo...)
   fn(i,f);    // BUG passes and does match >1
//matches:
//   Foo(f) fn(Foo...)
   fn(f);     //OK
}
    
    
More information about the Digitalmars-d-bugs
mailing list