Steven Schveighoffer wrote: > On Tue, 15 Mar 2011 14:54:13 -0400, Jens <j...@somewhere.org> wrote: > >> I didn't ask how to do composition in D. I asked why composition >> cannot be done via derivation, i.e., the reasoning behind the >> language design choice. A design faux paus IMO. > > Because composition by inheritance can be *completely* implemented > using alias this -- a feature that also provides other niceties. Why > provide another mechanism to do the exact same thing, just because > you are used to it?
1. I'm not convinced the other functionality is necessary. 2. I eschew ugly syntax. > > Note that "inheritance" is actually done exactly this way in C++, by > putting the derived type at the front of the "derived" type, and > aliasing all the methods/fields into the derived namespace. > > Show me what composition by derivation provides that alias this does > not. Nice syntax.