Template Question
Bill Baxter
dnewsgroup at billbaxter.com
Mon Apr 14 23:19:59 PDT 2008
Mike Parker wrote:
> 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.
I don't understand. Can't you just make it
static assert(is(U : Foo!(U.TheType))),
"Use a Foo!() don't be a Foo! -- Mr. T");
--bb
More information about the Digitalmars-d-learn
mailing list