Why can't structs be derived from?

Steven Schveighoffer schveiguy at yahoo.com
Tue Mar 15 10:36:40 PDT 2011


On Tue, 15 Mar 2011 13:30:00 -0400, Jens <jne at somewhere.org> wrote:

> dsimcha wrote:
>> On 3/15/2011 9:25 AM, Jens wrote:
>>> It seems rather fundamental to be able to compose a new struct from a
>>> given struct using inheritance. Why is this not allowed?
>>>
>>> struct slist_node
>>> {
>>>      slist_node* next;
>>> };
>>>
>>> template<class T>
>>> struct slist_node<T>: public slist_node
>>> {
>>>      T data;
>>> };
>>>
>>>
>>
>> Something that has basically that effect is allowed, just not with
>> that syntax:
>>
>> struct slist_node(T)
>> {
>>     slist_node base;
>>     alias base this;
>>
>>     T data;
>> }
>
> That's ugly.

That's all there is.  Structs do not have inheritance, only alias this.

-Steve


More information about the Digitalmars-d mailing list