Template Inheritance
Jacob Carlborg
doob at me.com
Sun Feb 19 03:34:07 PST 2012
On 2012-02-19 02:07, Jonathan M Davis wrote:
> On Sunday, February 19, 2012 00:55:59 %u wrote:
>> I've been working on porting an old D library to D2, and I'm running into a
>> nasty issue with templates and inheritance. I've got a base class like this:
>>
>> class Reader {
>> void get(T)(ref T[] buffer);
>> }
>>
>> and a subclass like this:
>>
>> class SubReader {
>> void get()(SomeClass param);
>> }
>>
>> The problem is that by creating a new form of the template in the subclass,
>> I made the base class's version invisible. If I try to use "alias
>> Reader.get get" like I would do for functions, the compiler complains that
>> the symbols clash (no musical puns intended). Does anyone know how to get
>> this to work?
>
> Template functions are non-virtual. You can't derive from them. If you want
> the derived classes to have the same functions, you must redefine them in the
> derived class.
>
> - Jonathan M Davis
Yeah, but isn't that an overload, or specialization, in the subclass?
--
/Jacob Carlborg
More information about the Digitalmars-d-learn
mailing list