Comparison chart of D and C++ templates
    Walter Bright 
    newshound at digitalmars.com
       
    Fri Jan 19 03:06:35 PST 2007
    
    
  
Kazuhiro Inaba wrote:
>>                          D  C++98 C++0x
>> Partial Specialization | Yes  Yes  NoChange
> 
> Actually, partial specialization in D is a kind of yes-and-no.
> In C++98, we can do this:
>   template<class T, class U>
>     class Foo< map<T,U> > { ... }; // Partially specialized to "associative arrays"
> while in D, cannot:
>   class Foo(T: /* ? */) {}
You're right there is a problem when one wants to specialize on a type
dependent on more than one parameter.
You can do things like:
    class Foo(T, U, M : map!(T,U)) ...
but it isn't quite as clean.
> Combination of staticIf/typeof/IFTI may achieve the same effect,
> but in my opinion it is not partial specialization anymore.
static if can do a reasonable job covering for it.
    
    
More information about the Digitalmars-d-announce
mailing list