Destroy two assumptions: interface implementation generated by TMP

John Colvin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Aug 12 05:08:12 PDT 2014


On Tuesday, 12 August 2014 at 11:34:01 UTC, anonymous wrote:
> On Monday, 11 August 2014 at 18:21:04 UTC, Baz wrote:
>> interface itf{
>>    void a_int(int p);
>>    void a_uint(uint p);
>> }
> [...]
>> // FAILS because: alias are probably generated after the itf 
>> check
>> class impl3: itf{
>>    void tmp(T)(T p){};
>>    alias a_int = tmp!int;
>>    alias a_uint = tmp!uint;
>> }
> [...]
>> 'Error: class itfgen.impl3 interface function 'void a_int(int 
>> p)' is not implemented'.
>
> I think the problem is that impl3.tmp is not virtual because 
> it's
> a template, and interfaces need to be implemented by virtual
> methods.

The instantiations of the template are just normal functions 
though, no?


More information about the Digitalmars-d-learn mailing list