Why Templates?
    Walter Bright 
    newshound at digitalmars.com
       
    Sat Mar  4 16:50:58 PST 2006
    
    
  
"Sean Kelly" <sean at f4.ca> wrote in message 
news:duda9o$137k$1 at digitaldaemon.com...
> is a bit annoying and reduces readability.  ITI is also quite useful in 
> C++ with respect to how overload resolution is handled, but I have no idea 
> how this will translate to the far simpler overloading rules in D. I think 
> we really may have to simply want and see what Walter comes up with for 
> ITI in D, as simply eliminating the need to explicitly specify template 
> parameters doesn't encompass the full utility of ITI in C++. Will we be 
> able to overload template functions with each other?
Yes.
> Will they also overload with non-template functions?
No. This is a misfeature in C++, and the equivalent can be done with 
explicitly specialized template functions.
> What happens if there are multiple matches?
>
>     class C(T) {}
>
>     template func(T) { void func( T val ) {} }
>     template func(T) { void func( C!(T) val ) {} }
>     void func( C!(int) val ) {}
>
>     func( new C!(int) );
>
> In C++, this is legal and the result is clearly defined (the "most 
> specialized" overload is called), but how will this translate to D?
It'll be the most specialized.
> Will it even be legal?
>
>
> Sean 
    
    
More information about the Digitalmars-d
mailing list