Template Question

Mike Parker aldacron71 at yahoo.com
Mon Apr 14 23:11:15 PDT 2008


Bill Baxter wrote:
> Mike Parker wrote:
>> Mike Parker wrote:
>>> Bill Baxter wrote:
>>>> Mike Parker wrote:
>>>>> Bill Baxter wrote:
>>>>>> Mike Parker wrote:
>>
>>>
>>> This is exactly what I was looking for. I don't understand it, but it 
>>> works.
>>
>> Actually, it doesn't work.
> 
> Ok, so in that case...
> I think you can put an alias for the type inside an interface, and use 
> that to work around:
> 
> interface Foo(T)
> {
>     alias T TheType;
>     void init(T);
> }
> 
> ...
>  static if ( is(U : Foo!(U.TheType)) ) {
>    ...
>   }
> 
> That seems to work.
> 

Yes, this works. But, the static if evaluation never completes if U does 
not have TheType. It craps out with errors as soon as U.TheType is 
encountered rather than printing out the more friendly static assert.


More information about the Digitalmars-d-learn mailing list